乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      遠(yuǎn)程控制你的智能電視,按鍵|輸入|安裝App等都已實現(xiàn),已開源!

       求知_時光 2018-03-19
      承香墨影
      正文共: 3037字 6圖
      預(yù)計閱讀時間: 8分鐘

      一、序

      Hi,大家好,我是承香墨影!

      智能電視或者智能盒子,不知道大家了解多少?

      這兩年各大廠商生產(chǎn)的電視設(shè)備,基本上都是搭載的 Android 系統(tǒng)。既然電視本身就是 Android 系統(tǒng)的,我們也可以在上面做一些很有意思的小玩意。

      今天給大家推薦的就是一個可以通過手機(jī)控制智能電視的 App,當(dāng)然,拿出來說它肯定是已經(jīng)開源了。

      App 名稱:TvRemoteIME

      https://github.com/kingthy/TVRemoteIME

      雖然針對智能電視,市面上已經(jīng)有很多免費(fèi)的商業(yè)應(yīng)用,例如:悟空遙控器、快點投屏等,這些已經(jīng)非常好用了,但是開源的項目依然值得我們借鑒和研究。

      二、TvRemoteIME

      TvRemoteIME 本身除了基本的控制之外,還包含了一些例如:App 的安裝和運(yùn)行、視頻播放、文件系統(tǒng)瀏覽和下載等功能。

      想要體驗又不想自己打包的同學(xué),可以在 Github 上下載最新版本 Apk 的安裝包。

      https://github.com/kingthy/TVRemoteIME/raw/master/released/IMEService-release.apk

      TvRemoteIME 從名字就可以看出來,它其實是把自己包裝成一個輸入法,使用它需要把自己設(shè)備的默認(rèn)輸入法設(shè)置成它。這樣的設(shè)定其實有很多個好處,例如:輸入法能拿到一些輸入以及按鍵相關(guān)的權(quán)限,還有就是?;畹膯栴},一般輸入法的服務(wù)不會被系統(tǒng)輕易殺掉。

      體驗 TvRemoteIME

      想要體驗的同學(xué)可以通過上面提供的下載地址下載,得到 Apk 之后,再安裝到待控制的設(shè)備上,這里可以是一個智能電視、智能盒子或者一臺普通的 Android 手機(jī)。

      安裝之后,你需要將它設(shè)置成系統(tǒng)的默認(rèn)輸入法,如果你的設(shè)備上有設(shè)置輸入法的設(shè)置頁面,當(dāng)然是可以直接選擇的。如果沒有的話,你還可以通過 adb 命令來進(jìn)行設(shè)置。

      adb shell ime set com.android.tvremoteime/.IMEService

      一切設(shè)置妥當(dāng)之后,就可以通過電腦或者手機(jī),遠(yuǎn)程訪問控制頁面。控制頁面是一個網(wǎng)頁,地址就是你安裝 TvRemoteIME 的設(shè)備的 IP 地址,端口是固定的 9978。

      例如我當(dāng)前的設(shè)備的 IP 是 192.168.1.199,那就是 http://192.168.1.199:9978/。

      之后你就可以在瀏覽器中,看到前面截圖的控制頁面,開始你的體驗吧。

      三、TvRemoteIME 的原理

      TvRemoteIME 主要的幾個功能:

      1. 按鍵控制

      2. 文件瀏覽(安裝、目錄、打開)

      3. 視頻播放

      接下來分析它主要的幾個功能。

      3.1 通信

      首先要確定一點,TvRemoteIME 只有一個輸入法,而要控制它其實是去訪問 TvRemoteIME 提供的一個本地 Http 服務(wù)。

      從文檔和代碼中可以看到,這個服務(wù)是基于 NanoHTTPD 這個開源項目的。它是一個簡單的 HTTP 服務(wù)器,簡單到只需要一個文件就可以提供完整的 Http 服務(wù),可以說非常的好用。

      https://github.com/NanoHttpd/nanohttpd

      TvRemoteIME 的所有通信操作,都是基于 NanoHTTPD 的,例如:提供操作頁面、通信、上傳下載文件等等。它可以算是 TvRemoteIME 的基礎(chǔ)。

      3.2 控制

      前面也提到了,TvRemoteIME 將自己包裝成一個輸入法,所以很多操作它都可以通過 InputConnection 來實現(xiàn),例如按鍵的控制。

      關(guān)于控制,你可以在 IMEService 里看到對應(yīng)的邏輯。

      long eventTime = SystemClock.uptimeMillis();
      InputConnection ic = getCurrentInputConnection();
      switch (keyAction) {
         case KEY_ACTION_PRESSED:
             sendKeyCode(kc);
             break;
         case KEY_ACTION_DOWN:
             if(ic != null) {
                 ic.sendKeyEvent(new KeyEvent(eventTime, eventTime,
                         KeyEvent.ACTION_DOWN, kc, 0, 0, KeyCharacterMap.VIRTUAL_KEYBOARD, 0,
                         KeyEvent.FLAG_SOFT_KEYBOARD | KeyEvent.FLAG_KEEP_TOUCH_MODE));
             }
             break;
         case KEY_ACTION_UP:
             if(ic != null) {
                 ic.sendKeyEvent(new KeyEvent(eventTime, eventTime,
                     KeyEvent.ACTION_UP, kc, 0, 0, KeyCharacterMap.VIRTUAL_KEYBOARD, 0,
                     KeyEvent.FLAG_SOFT_KEYBOARD | KeyEvent.FLAG_KEEP_TOUCH_MODE));
             }
             break;
      }

      3.3 視頻播放

      視頻播放功能的播放器,也是基于另外一個開源項目 AFAP Player ,內(nèi)部采用的 ijkPlayer 來實現(xiàn)。

      通過 NanoHTTPD 傳遞過來的播放地址,然后直接傳遞給播放器去播放即可。

      看文檔唯一讓我覺得有亮點的地方說是可以支持 thunder/ed2k 協(xié)議的視頻,也是基于另外一個開源項目 MiniThunder 來實現(xiàn)的,不過實際操作起來,不好用,我傳遞進(jìn)去一個 thunder 的下載地址,直接崩潰了。

      四、TvRemoteIME 的不足

      TvRemoteIME 其實作為一個研究項目,已經(jīng)算是可以了,并且只需要一個輸入法 App,簡單設(shè)置一下,并不需要再在手機(jī)上安裝其他 App,這樣 Android 和 iOS 都可以通用。

      但是我這里算是雞蛋里挑骨頭,說一下它的不足。

      依賴輸入法

      核心功能嚴(yán)重依賴輸入法,例如:按鍵控制、輸入、?;畹鹊?。

      輸入法本身這個思路是挺好的,這樣可以讓我們少思考很多問題。但是在現(xiàn)階段我了解的情況,很多傳統(tǒng)廠商生產(chǎn)的智能電視,其實是無法設(shè)置輸入法的,這樣基本上切斷了使用的唯一途徑。甚至安裝第三方 App 就已經(jīng)是很難了,哪怕安裝上,你也無法將它設(shè)置為系統(tǒng)輸入法。

      在無法和其他輸入法兼容使用的情況下,吐槽一下 TvRemoteIME 輸入法的 UI 有點丑。

      除了依賴輸入法服務(wù)之外,其他的思路基本上是正確的,也沒什么好挑剔的地方。不過現(xiàn)在作者在 Github 上,并沒有提交服務(wù)網(wǎng)頁相關(guān)的 RAW 資源,應(yīng)該是作者遺漏了,等待后期補(bǔ)充。

      四、小結(jié)

      整體來說 TvRemoteIME 還算是一個比較健全的項目,如果有興趣學(xué)習(xí)研究,還是可以看看源碼的。

      不過日常使用的話,還是推薦一些免費(fèi)的商業(yè) App。

      • 悟空遙控器:無需輸入法,全線控制,App 管理、視頻內(nèi)容也很全面。

      • 快點投屏:無需TV端,基于 AirPlay 和 DLNA 實現(xiàn)手機(jī)控制電視直接播放,并且很多剛上映的電影資源。

      這兩個 App,基本上滿足我的日常需要。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多