一、序Hi,大家好,我是承香墨影! 智能電視或者智能盒子,不知道大家了解多少? 這兩年各大廠商生產(chǎn)的電視設(shè)備,基本上都是搭載的 Android 系統(tǒng)。既然電視本身就是 Android 系統(tǒng)的,我們也可以在上面做一些很有意思的小玩意。 今天給大家推薦的就是一個可以通過手機(jī)控制智能電視的 App,當(dāng)然,拿出來說它肯定是已經(jīng)開源了。
雖然針對智能電視,市面上已經(jīng)有很多免費(fèi)的商業(yè)應(yīng)用,例如:悟空遙控器、快點投屏等,這些已經(jīng)非常好用了,但是開源的項目依然值得我們借鑒和研究。 二、TvRemoteIMETvRemoteIME 本身除了基本的控制之外,還包含了一些例如:App 的安裝和運(yùn)行、視頻播放、文件系統(tǒng)瀏覽和下載等功能。 想要體驗又不想自己打包的同學(xué),可以在 Github 上下載最新版本 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 地址,端口是固定的 例如我當(dāng)前的設(shè)備的 IP 是 192.168.1.199,那就是 之后你就可以在瀏覽器中,看到前面截圖的控制頁面,開始你的體驗吧。 三、TvRemoteIME 的原理TvRemoteIME 主要的幾個功能:
接下來分析它主要的幾個功能。 3.1 通信首先要確定一點,TvRemoteIME 只有一個輸入法,而要控制它其實是去訪問 TvRemoteIME 提供的一個本地 Http 服務(wù)。 從文檔和代碼中可以看到,這個服務(wù)是基于 NanoHTTPD 這個開源項目的。它是一個簡單的 HTTP 服務(wù)器,簡單到只需要一個文件就可以提供完整的 Http 服務(wù),可以說非常的好用。
TvRemoteIME 的所有通信操作,都是基于 NanoHTTPD 的,例如:提供操作頁面、通信、上傳下載文件等等。它可以算是 TvRemoteIME 的基礎(chǔ)。 3.2 控制前面也提到了,TvRemoteIME 將自己包裝成一個輸入法,所以很多操作它都可以通過 關(guān)于控制,你可以在 IMEService 里看到對應(yīng)的邏輯。 long eventTime = SystemClock.uptimeMillis(); 3.3 視頻播放視頻播放功能的播放器,也是基于另外一個開源項目 AFAP Player ,內(nèi)部采用的 ijkPlayer 來實現(xiàn)。 通過 NanoHTTPD 傳遞過來的播放地址,然后直接傳遞給播放器去播放即可。 看文檔唯一讓我覺得有亮點的地方說是可以支持 四、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,基本上滿足我的日常需要。 |
|
來自: 求知_時光 > 《衛(wèi)星電視》