媒體屬於一套系統應用程式(例如,撥號器和應用程式啟動器)。這些應用程式共用 AOSP 結構中不同層級定義的通用樣式和資源。
-
framework/base
。所有 Android 基本樣式都在這裡定義。 -
packages/services/Car/car_product/overlay
。包含建置時覆蓋,可修改標準架構/基礎資源以產生 Android Automotive OS 的 AOSP 外觀。 OEM 可能會選擇排除此覆蓋並使用自己的覆蓋。 -
packages/apps/Car/libs/car-ui-lib
。該程式庫定義了系統應用程式和專為客製化而設計的非捆綁應用程式通用的 AAOS 元件和資源。詳情請參閱Car UI 庫整合指南。 -
packages/apps/Car/libs/car_app_common
。汽車系統應用程式之間共用的通用顏色和樣式。 OEM 可以使用覆蓋來自訂這些元素(類似於上面描述的car_product/overlay
)。 -
packages/apps/Car/libs/car_media_common
。包含媒體和其他媒體 UI 之間共享的元素。例如,主螢幕媒體小工具。 packages/apps/Car/Media.
所有系統應用程式都使用自己的主題,該主題擴展自Theme.CarUi
,如car-ui-lib
所定義。
Android Automotive AOSP 提供兩種媒體呈現方式。
- 媒體使用者介面。使用戶能夠登入、瀏覽內容和使用詳細的播放控制。
- 主螢幕媒體小工具。允許在主螢幕上使用核心媒體播放控制功能。
媒體使用者介面
下圖描述了 Media UI 的結構:
圖 1.媒體使用者介面。
有關 UX 和 UI 指南以及媒體不同組件的空間結構的詳細信息,請參閱空間模型。
AppBarView:工具列
媒體 UI 工具列是與其他系統應用程式共用的元件,例如撥號器和廣播。若要了解如何自訂工具列,請參閱汽車 UI 庫整合指南。
媒體最大圖稿尺寸
若要通知媒體應用程式要取得的藝術品的最大尺寸,您可以在系統中覆寫media_items_bitmap_max_size_px
。為此,請傳送EXTRA_MEDIA_ART_SIZE_HINT_PIXELS
作為根提示。因此,您在下載圖像時將節省頻寬。要了解更多信息,請參閱developer.android.com 上的MediaConstants 。瀏覽片段
Browse 主要由Car UI RecyclerView組成,它處理捲軸位置、箭頭和邊距,並且可以瀏覽不同類型的項目,例如標題、網格項目、圖示網格項目、清單項目和圖示清單項目。
最小化播放控件
當顯示瀏覽片段並且選擇媒體項目時,將顯示最小化的播放控制視圖。下圖說明了該視圖的結構:
圖 2.最小化的播放控制。
瀏覽清單
開發人員可以使用一組樣式提示(請參閱應用程式內容樣式)來自訂媒體瀏覽內容的呈現方式。 OEM 必須遵循這些風格,根據其設計系統調整外觀。
支援的項目類型和各自的佈局如下:
-
LIST_ITEM
(media_browse_list_item.xml
)。通常用於播客中的劇集,例如播放清單項目和收藏夾。 -
ICON_LIST_ITEM
(media_browse_list_icons_item.xml
)。用於類別或選單選項,其中媒體項目中包含的圖像不是實際的專輯封面而是圖示。 -
GRID_ITEM
(media_browse_grid_item.xml
)。通常用於可播放的項目,例如歌曲或播放清單。 -
ICON_GRID_ITEM
(media_browse_grid_icons_item.xml
)。用於類別,類似於ICON_LIST_ITEM
。 -
HEADER
(media_browse_header_item.xml
)。用於將媒體項目組織成部分。
回放畫面
若要顯示此螢幕,請展開最小化的播放控制:
- 目前正在播放媒體項元資料(包括標題和副標題)。
- 完整的播放控制。
- 播放佇列(用於顯示最近播放或下一個要播放的項目)。
播放畫面的組件如下圖所示。
圖 3.播放畫面。
播放畫面不會與應用程式的其餘部分共用工具列。相反,該螢幕單獨管理螢幕頂部的元素。
音訊格式屬性
當應用程式在目前播放的媒體項目的額外內容中設定KEY_CONTENT_FORMAT_TINTABLE_LARGE_ICON_URI
或KEY_CONTENT_FORMAT_TINTABLE_SMALL_ICON_URI
。 OEM 必須依照 URI 的指示呈現適當的向量可繪製物件。
必須在主播放檢視上使用大版本的內容格式圖示。在輔助視圖(例如較小的播放列)上,OEM 可以使用較小版本的內容格式圖示。 ContentFormatView
根據其logoSize
屬性呈現最佳圖示。
播放連結
當應用程式設定KEY_SUBTITLE_LINK_MEDIA_ID
或KEY_DESCRIPTION_LINK_MEDIA_ID
時,OEM 必須以建議可以點擊的方式呈現字幕或說明,然後開啟瀏覽檢視以在使用者點擊時顯示連結的媒體項目。播放控制
播放畫麵包括一組擴展的播放控件,按控制行組織。只有當第一行上的空間不足以顯示媒體應用程式從PlaybackStateCompat#getActions()
傳回的所有動作時,才會顯示輔助行(在下方顯示為頂部的行)。
圖 4.播放控制。
OEM 可以自訂標準操作的圖標,但他們必須呈現媒體應用程式提供的自訂操作圖標。
主螢幕媒體小工具
該小部件作為car-media-common
中的片段實現。該片段包括上述播放畫面的最小化版本。所有相同的自訂規則和功能都適用。
圖 5.主螢幕媒體小工具。
上面顯示的應用程式選擇器按鈕使用媒體來源切換使用者流程中所述的切換功能。
若要使用應用程式選擇器按鈕的目前媒體來源圖標,請覆寫platform/packages/apps/Car/libs/car-media-common/res/values/bools.xml
中定義的use_media_source_logo_for_app_selector
標誌並將其設為true
。透過此更改,應用程式工具列另一側的媒體來源圖示將被隱藏。自訂也適用於媒體中心應用程式和參考廣播應用程式。
圖 6.媒體應用程式選擇按鈕。
播放、暫停和停止按鈕佈局
可以為「正在播放」和最小化播放控制視圖自訂播放/暫停/停止按鈕佈局。兩種佈局均在packages/apps/Car/libs/car-media-common/res/layout/
中定義。
若要自訂按鈕佈局,請將建置時覆寫套用到play_pause_stop_button_layout.xml
和minimized_play_pause_stop_button_layout.xml
。
反白顯示播放隊列中的目前項目
目前播放佇列項目的狀態設定為selected
,因此可以使用狀態資源進行自訂,例如顏色狀態清單(請參閱顏色狀態清單資源)和狀態清單可繪製物件(請參閱可繪製資源)。若要套用必要的樣式更改,您可以覆寫佇列項目佈局packages/apps/Car/Media/res/layout/queue_list_item.xml ,或單獨的
您也可以在目前播放佇列項目旁邊顯示一個圖示:
- 覆寫在packages/apps/Car/Media/res/layout/queue_list_item.xml中定義的
show_icon_for_now_playing_queue_list_item
布林標誌,或單獨的若要隱藏播放計時器,請將
show_time_for_now_playing_queue_list_item
設定為false
。 - 使用狀態可繪製對象,例如專案根視圖的前景或背景(請參閱packages/apps/Car/Media/res/layout/queue_list_item.xml ,或專案視圖層次結構中的單獨視圖。
圖 7.突出顯示播放佇列中的目前項目。