用媒體實現廣播

Radio UI 被實現為一個獨立的應用程序。有關如何將 Radio UI 集成到無線電硬件的說明,請參見實施無線電

以下部分介紹瞭如何將 Radio UI 與 Media 集成,從而為用戶提供無縫體驗,使用戶能夠與媒體源和廣播進行交互,就好像它們是單個應用程序一樣。

媒體源切換用戶流

下圖說明了 Radio and Media 的參考實現如何實現應用程序切換用戶流。

媒體源切換用戶流

圖 1.媒體源切換用戶流程

為了在 Radio 和 Media 中的其他應用程序之間提供無縫轉換, car-media-common庫定義了可用於啟動媒體源選擇器的 Android 意圖。在 AOSP 中,此選擇器在 App Launcher 中實現,為啟動應用提供相同的 UI,但經過過濾後僅顯示媒體源。

OEM 可以選擇按原樣採用當前的 App Launcher 實施,或者實施自定義的媒體源選擇器。

選擇器可以在兩種模式下起作用:

  • 正常流量。使用選擇器後,選定的源將顯示在 Media 中,以便用戶瀏覽其內容。
  • 作為開關。選擇器用於切換源,但媒體不會顯示給用戶。主頁上的選擇器圖標也是如此。選擇來源後,會向用戶顯示最近的前一個屏幕(在本例中為主頁)。

用於在媒體源之間切換的意圖可以從MediaSource#getSourceSelectorIntent()方法獲得,該方法接受一個popup布爾值,返回一個啟動上述每個流的意圖。

實際意圖在packages/apps/Car/libs/car-media-common/res/values/config.xml中定義。要自定義此配置,請使用構建時覆蓋。

更換收音機應用程序

鑑於 Radio 應用程序實現了媒體瀏覽和媒體會話,因此 Radio 將顯示在應用程序啟動器中。為了防止在用戶單擊圖標時啟動媒體,需要兩個元素。電台必須

  • 有一個啟動器活動。
  • 被聲明為自定義源。為此,請將組件名稱添加到car-media-common/res/values/config.xml中的custom_media_packages鍵。

UX 駕駛限制

媒體必須遵守所有 UX 駕駛分心限制。為此,媒體必須監聽CarUXRestrictionManager並實施其所有策略。