自訂媒體

媒體屬於一組系統應用程式 (例如撥號和應用程式啟動器)。這些應用程式會共用 Android 開放原始碼計畫結構中不同層級所定義的通用樣式和資產。

  • framework/base 所有 Android 基本樣式都會在此定義。
  • packages/services/Car/car_product/overlay. 包含建構時間疊加層,可以修改標準架構/基礎資源,產生 Android Automotive OS 開放原始碼計畫的外觀和風格。原始設備製造商 (OEM) 可以選擇排除這個重疊元素,並自行使用。
  • packages/apps/Car/libs/car-ui-lib:這個程式庫會定義 AAOS 元件和系統應用程式與非內含應用程式 (專為自訂而設計) 通用的資源。詳情請參閱 Car UI Library 整合指南
  • packages/apps/Car/libs/car_app_common Automotive 系統應用程式共用的常見顏色和樣式。OEM 廠商可以使用疊加層自訂這些元素 (類似上述的 car_product/overlay)。
  • packages/apps/Car/libs/car_media_common:包含 Media 和其他媒體 UI 之間共用的元素。例如主畫面的「媒體」小工具。
  • packages/apps/Car/Media. 所有系統應用程式都會使用自有主題,這些主題是從 Theme.CarUi 擴充而來,如 car-ui-lib 所定義。

Android Automotive AOSP 提供兩種媒體呈現方式。

  • 媒體 UI:可讓使用者登入、瀏覽內容,以及使用詳細播放控制項。
  • 主畫面媒體小工具允許在主畫面上使用核心媒體播放控制功能。

媒體使用者介面

下圖說明媒體 UI 的結構:

媒體 UI

圖 1. 媒體使用者介面。

如要進一步瞭解使用者體驗和 UI 指南,以及不同媒體元件的空間結構,請參閱「空間模型」一文。

AppBarView:工具列

媒體 UI 工具列是與其他系統應用程式共用的元件,例如撥號和收音機。如要瞭解如何自訂工具列,請參閱 Car UI Library 整合指南

媒體最大圖片大小

如要通知媒體應用程式要擷取的圖片大小上限,您可以在系統中重疊 media_items_bitmap_max_size_px。如要這麼做,請傳送 EXTRA_MEDIA_ART_SIZE_HINT_PIXELS 做為根目錄提示。因此,下載圖片時可節省頻寬。詳情請參閱 developer.android.com 上的 MediaConstants

瀏覽片段

瀏覽功能主要由 Car UI RecyclerView 組成,可處理捲軸位置、箭頭和邊距,並可瀏覽不同類型的項目,例如標題、格狀項目、圖示格狀項目、清單項目和圖示清單項目。

最小化的播放控制項

當瀏覽片段顯示時,以及選取媒體項目時,系統會顯示最小化播放控制項檢視畫面。下圖說明此檢視畫面的結構:

最小化的播放控制項

圖 2. 最小化的播放控制項。

瀏覽清單

開發人員可以使用一組樣式提示 (請參閱「套用內容樣式」),自訂媒體瀏覽內容的呈現方式。原始設備製造商 (OEM) 必須遵循這些樣式,依據設計系統調整呈現方式。

支援的項目類型和相應的版面配置如下:

播放畫面

如要顯示這項畫面,請展開最小化的播放控制項:

  • 目前播放的媒體項目中繼資料 (包括標題和副標題)。
  • 完整的播放控制項。
  • 播放待播清單 (用於顯示最近播放或下一個要播放的項目)。

播放畫面的元件如下圖所示。

播放畫面

圖 3. 播放畫面。

播放畫面不會與應用程式其他部分共用工具列,而是會個別管理畫面頂端的元素。

音訊格式歸因

當應用程式在當前播放的媒體項目的 extras 中設定 KEY_CONTENT_FORMAT_TINTABLE_LARGE_ICON_URI KEY_CONTENT_FORMAT_TINTABLE_SMALL_ICON_URI 時。OEM 必須根據 URI 顯示適當的向量可繪項目。

主要播放檢視畫面必須使用大型版本的「內容格式」圖示。在次要檢視畫面 (例如較小的播放列) 中,原始設備製造商 (OEM) 可以使用較小的 Content Format 圖示。 ContentFormatView 會根據其 logoSize 屬性算繪最佳圖示。

當應用程式設定 KEY_SUBTITLE_LINK_MEDIA_IDKEY_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。這項變更會隱藏應用程式工具列另一側的「媒體來源」圖示。這項自訂設定也適用於 Media Center 應用程式和參考 Radio 應用程式。

「媒體應用程式選取」按鈕

圖 6. 媒體應用程式選取按鈕。

播放、暫停和停止按鈕版面配置

您可以為「正在播放」和縮小的播放控制項檢視畫面自訂播放/暫停/停止按鈕版面配置。這兩種版面配置都定義在 packages/apps/Car/libs/car-media-common/res/layout/ 中。

如要自訂按鈕版面配置,請將建構時間疊加層套用至 play_pause_stop_button_layout.xmlminimized_play_pause_stop_button_layout.xml

醒目顯示播放佇列中的目前項目

目前播放佇列項目的狀態已設為 selected,因此可使用狀態資源 (例如顏色狀態清單,請參閱「顏色狀態清單資源 」) 和狀態清單可繪項目 (請參閱「可繪項目資源」) 自訂。如要套用必要的樣式變更,您可以覆寫佇列項目版面配置 packages/apps/Car/Media/res/layout/queue_list_item.xml,或單獨的

您也可以在目前的播放隊列項目旁邊顯示圖示:

圖 7. 播放佇列中目前的項目已醒目顯示。