Android 提供豐富的使用者體驗,並針對在高畫質電視等大螢幕裝置上執行的應用程式進行最佳化。開發 Android TV 應用程式,即可擴大應用程式的目標對象。本文將說明如何有效執行這項作業。
打造 TV 應用程式
TV 應用程式採用的架構與手機和平板的應用程式相同。也就是說,您可以根據已知的 Android 應用程式建構方式,建立新的 TV 應用程式,也可以擴充現有應用程式,讓這些應用程式也能在 TV 裝置上執行。
不過,電視的使用者互動模式與手機和平板電腦大不相同。如要讓應用程式在電視裝置上獲得成功,您必須設計新的版面配置,讓使用者在 10 英尺外也能清楚瞭解內容,並提供僅使用方向鍵和選取按鈕即可操作的導覽功能。
如要進一步瞭解如何處理電視硬體控制器、建構電視版面配置及建立電視導覽等注意事項,請參閱「建構 TV 應用程式」。
使用 Media3 ExoPlayer
Jetpack Media3 提供 Player 介面,可定義播放、暫停、跳轉及顯示曲目資訊等基本功能。ExoPlayer 是 Media3 中這個介面的預設實作方式。
相較於 Android 的 MediaPlayer API,ExoPlayer API 額外提供多項便利功能,例如支援多種串流通訊協定、預設音訊和視訊轉譯器,以及處理媒體緩衝的元件。
你可以自訂及擴充 ExoPlayer,並透過 Play 商店應用程式更新。詳情請參閱「Media3 ExoPlayer」。
使用 Media3 MediaSession
媒體工作階段提供系統與應用程式音訊或影片播放器互動的通用方式。Media3 與先前媒體 API 的主要差異之一,就是不再需要元件之間的連接器。
新的 MediaSession
類別會採用實作 Player 介面的任何類別。ExoPlayer 和 MediaController 都是實作該介面的類別。這有助於簡化元件之間的互動。
詳情請參閱「播放器介面」。
如要進一步瞭解如何建立媒體播放應用程式,請參閱「使用 ExoPlayer 建立基本媒體播放器」。
為提供最佳體驗給媒體應用程式的終端使用者,您需要實作 MediaSession
。如要這麼做,請初始化 Player
,並提供給 MediaSession.Builder
,如下所示:
Kotlin
val player = ExoPlayer.Builder(context).build() val mediaSession = MediaSession.Builder(context, player).build()
Java
ExoPlayer player = new ExoPlayer.Builder(context).build(); MediaSession mediaSession = new MediaSession.Builder(context, player).build();
自動處理狀態
Media3 程式庫會使用播放器的狀態自動更新媒體工作階段。因此您不需要手動處理從玩家到工作階段的對應。這有助於確保使用者在播放媒體時,一律會看到最新資訊,包括「聽聲辨曲」資訊卡。
控制及通告播放功能
在 Media3 中,預設播放器是 ExoPlayer 類別,可實作 Player 介面。將媒體工作階段連結至播放器後,應用程式就能在外部宣傳媒體播放作業,並接收來自外部來源的播放指令。媒體工作階段會將這些指令委派給媒體應用程式的播放器。
媒體工作階段是控制播放的關鍵。您可以將外部來源的指令,傳送至負責播放媒體的播放器。外部用戶端可以使用媒體控制器,向媒體應用程式發出播放指令。這些指令會由媒體工作階段接收,最終再委派給媒體播放器。
如要進一步瞭解播放功能,例如如何自訂播放指令行為,請參閱「使用 MediaSession 控制及通告播放功能」。
避免應用程式中斷
使用 MediaSession
可避免不必要的干擾,例如:
關閉電視或切換電視輸入時,影片會繼續播放。這也會導致電視硬體耗電量增加。透過
MediaSession
,應用程式可以通知平台正在播放媒體,平台也能通知應用程式可以停止播放。切換應用程式或關閉電視螢幕時,音樂播放作業會意外停止。使用
MediaSession
API 即可在背景服務中繼續播放。限制使用者與內容互動,導致無法控制播放。例如,在應用程式於背景播放音樂時返回應用程式,或是支援語音指令。在應用程式中加入
MediaSession
,使用者就能使用語音指令搜尋及略過歌曲或集數。
其他考量
將媒體應用程式擴展至 Android TV 時,您需要考量無障礙問題、如何提高參與度、如何讓使用者尋找內容,以及如何建構遊戲和 TV 輸入服務。
電視無障礙功能
雖然輔助技術可以協助低視能使用者,但支援電視應用程式的內容探索歷程無障礙功能也很重要。
舉例來說,請特別注意提供導覽指引和正確標記元素,並確保電視應用程式能與 TalkBack 等無障礙功能搭配使用。這些步驟可大幅改善視障人士的使用體驗。
改善無障礙功能的第一步是瞭解相關知識。如要進一步瞭解文字縮放、鍵盤配置和語音說明,請參閱無障礙資源。
在 Google TV 上提高參與度的最佳做法
所有為 Android TV 打造的應用程式都適用於 Google TV 裝置。為提供最佳 Google TV 使用體驗,建議您採用下列最佳做法。
您需要使用 MediaSession
,提供與音訊或影片播放器互動的通用方式。如要進一步瞭解如何實作這項功能,請參閱「使用 Media3 MediaSession」。
應用程式必須支援 Google Cast。您可以透過這個 SDK 擴充 Android、iOS 和 Chrome 應用程式,將音訊和影片串流至 Android TV,以及 Chromecast 和 Google 助理裝置。詳情請參閱 Google Cast 說明文件。
您也可以協助使用者:
在各個平台探索內容:提供媒體動作動態消息,或整合「接著看」功能。
善用語音和參與度:支援帳戶連結和授權同步,提供語音投放功能,並啟用 Cast Connect。
整合 Google Play 結帳系統,提供更輕鬆的付款方式,以及流暢的訂閱體驗。
建構電視輸入架構
觀看直播電視節目和其他連續的頻道內容,是電視體驗的重要環節。使用者習慣透過瀏覽頻道,在電視上選取及觀看節目。電視輸入架構會建立頻道,在電視節目表發布影片或音樂內容。
電視輸入架構提供統一方法,可接收及播放來自硬體來源 (例如 HDMI 連接埠和內建調諧器) 的直播影片內容,以及來自軟體來源 (例如透過網際網路串流播放的影片)。詳情請參閱「建構 TV 輸入服務」。