無線電控制實作

無線電控管機制實作是以 MediaSessionMediaBrowse,讓媒體和語音助理應用程式可執行以下動作 控制收音機若需更多資訊,請參閲 前往 developer.android.com 打造車用媒體應用程式

我們為車輛廣播電台支援提供媒體瀏覽樹狀圖實作 packages/apps/Car/libs 中的程式庫。這個程式庫也包含 用於在 URI 之間來回轉換的 ProgramSelector。建議採用無線電 使用這個程式庫來建立關聯的瀏覽樹狀結構

媒體來源切換器

為了讓電台和媒體中顯示的其他應用程式流暢切換, Car-media-common Library 包含應整合至無線電使用的類別 應用程式。MediaAppSelectorWidget 可以加入電台應用程式的 XML (參考媒體和電台應用程式所用的圖示和下拉式選單):

<com.android.car.media.common.MediaAppSelectorWidget
    android:id="@+id/app_switch_container"
    android:layout_width="@dimen/app_switch_widget_width"
    android:layout_height="wrap_content"
    android:background="@drawable/app_item_background"
    android:gravity="center" />

這個小工具會啟動 AppSelectionFragment, 列出可切換的媒體來源。如果需要除了所提供的 UI 以外, 您就可以建立自訂小工具,在 AppSelectionFragment 系統應該會顯示切換器。

AppSelectionFragment newFragment = AppSelectionFragment.create(widget,
            packageName, fullScreen);
    newFragment.show(mActivity.getSupportFragmentManager(), null);

參考無線電應用程式實作方式提供了範例。 位於packages/apps/Car/Radio

詳細的控管規格

MediaSession (透過 MediaSession.Callback) 介面為目前正在播放的廣播節目提供控制機制:

  • onPlayonStop。(取消) 將電台播放靜音。
  • onPause。時光平移暫停 (如果支援的話)。
  • onPlayFromMediaId。播放頂層資料夾中的任何內容。例如「播放 FM」。 或「播放電台」
  • onPlayFromUri。播放特定頻率。例如「播放 FM 88.5」。
  • onSkipToNextonSkipToPrevious。觀看下一部或下一部 電台。
  • onSetRating。在「我的收藏」中新增或移除。

MediaBrowser 會顯示可微調的 MediaItem 覆蓋以下三種頂層目錄:

  • (選用) 節目 (電台)。這個模式通常用於 雙調音器無線電,指出使用者所在地區的所有可調整電台。
  • 收藏內容。將電台節目加入「我的收藏」清單 無法使用 (在接待範圍外)。
  • 樂團頻道:目前區域所有實體可能性 (87.9、 88.1、88.3、88.5、88.7、88.9、89.1 等)。每個錶帶都有獨立的頂層目錄。
,瞭解如何調查及移除這項存取權。
MediaBrowserService 樹狀結構結構
圖 2.MediaBrowserService 樹狀結構結構

這些資料夾 (AM/FM/Programs) 中的每個元素都是具有 URI 的 MediaItem 搭配 MediaSession 來微調每個頂層資料夾 (AM/FM/Programs) 都是一個 MediaItem ,且有 mediaId 可搭配 MediaSession 使用來觸發播放,並由原始設備製造商 (OEM) 自行斟酌。適用對象 例如「播放 FM」「播放上午」以及「播放電台」都是使用 要傳送至原始設備製造商 (OEM) 無線電應用程式的 mediaId。是否要透過電台應用程式決定要播放的內容? 一般要求和 mediaId

媒體工作階段

由於沒有暫停廣播串流、「播放」、「暫停」和「停止」這兩個動作, 並非一律套用至無線電。使用無線電時,「停止」動作會與串流靜音 而 Play 就會與移除靜音設定建立關聯

部分無線電調音器 (或應用程式) 提供下列功能,可讓您模擬暫停的廣播串流 快取內容,稍後再播放在這種情況下,請使用 onPause

從 mediaId 和 URI 動作播放是為了將轉播至電台 擷取自 MediaBrowser 介面。mediaId 是任意字串 ,讓特定 ID 指向一個項目,但該 ID 不會重複 和穩定 (因此在整個工作階段期間具有相同的 ID) 值, 來識別指定電台URI 會是定義明確的結構定義。簡單來說 形式。雖然這個屬性保有相同的屬性,但不需要 保持穩定,不過車站改用不同頻率時可能會有所改變。

根據設計,我們不會使用 onPlayFromSearch。由客戶的負責 (隨附應用程式),以便從 MediaBrowser 樹狀結構選取搜尋結果。移動 會使電台應用程式的責任變得更加複雜,因此必須要求我們訂定正式合約 字串查詢應該出現,並導致使用者在不同的硬體上,經驗不均 平台。

注意:電台應用程式未包含額外 這些資訊適合用來搜尋未對用戶端暴露的車站名稱 經由 MediaBrowser 介面取得

跳至下一個或上一個電台,視當前內容而定:

  • 當應用程式調整為加入「我的收藏」清單中的電台時,應用程式 可以從我的最愛清單移至下一個電台。
  • 收聽計劃清單中的電台,可能會調整到下一個 可用站點,依據頻道編號排序。
  • 收聽任意頻道可能會使下一個實體頻道有音調, 即使沒有廣播訊號也沒關係

無線電應用程式會處理這些動作。

處理錯誤

TransportControls 動作 (播放、停止和下一首) 並未就該動作提供回饋 不論成功與否表明錯誤的唯一方法是設定 MediaSession 將狀態變更為 STATE_ERROR 顯示錯誤訊息

無線電應用程式必須處理這些動作,然後執行或設定錯誤狀態。 如果並未立即執行 Play 指令,播放狀態應變更為 STATE_CONNECTING (若為直接調整) 或 STATE_SKIPPING_TO_PREVIOUS NEXT 系統就會執行指令

客戶應查看 PlaybackState ,並確認工作階段已將目前的程式變更為要求或輸入到 錯誤狀態。STATE_CONNECTING 不得超過 30 秒。然而,如果是 AM/FM 頻率應有明顯的效能。

新增及移除我的最愛

MediaSession 支援評分,可用於控管「我的最愛」。onSetRating 呼叫,其分級類型為 RATING_HEART 在「我的最愛」清單中新增或移除目前調整的電台。

與舊版的預設值不同,這個模型會假設「我的收藏」是未排序且沒有界限的「我的收藏」 清單,每個儲存的最愛項目都會分配到數值運算單元 (通常為 1 至 6)。 因此,預設式系統與 onSetRating 不相容 作業。

MediaSession API 的限制,就是目前只有目前經過調整的車站。 可以新增或移除例如,必須先選取項目才能進行 待移除。這只是 MediaBrowser 用戶端的限制,例如 隨附應用程式此外,電台應用程式也不受類似限制。這個部分為選用部分 應用程式不支援「我的最愛」時

MediaBrowser

用於表示頻率或實體頻道名稱 (調整時) 任一頻道都適合特定無線電技術) 系統會列出特定區域的所有有效頻道 (頻率) 。 在美國區,這類比例為 87.8 至 101 個 FM 頻道 108.0 MHz 範圍 (使用 0.2MHz 間距) 和 117 AM 聲道,範圍為 530 到 1700 kHz (使用 10kHz 間距)。HD 高畫質電台使用相同的頻道空間 而不是單獨顯示

目前可收聽的電台節目清單是平面式的,因為這樣 顯示配置,例如按直接音訊廣播 (DAB) 組合進行分組。

「我的最愛」清單中的項目無法調整。舉例來說 超出計劃範圍電台應用程式不一定能偵測安裝項目 預先觀看影片如果是這樣,可能不會將該項目標示為可播放。

為了識別頂層資料夾,系統會採用藍牙使用的相同機制。 也就是說, MediaDescription 的額外套件。 物件包含調音器專屬欄位,就像藍牙搭配 EXTRA_BT_FOLDER_TYPE 一樣。 以廣播電台為例,這會定義以下新欄位的 public API:

  • EXTRA_BCRADIO_FOLDER_TYPE = "android.media.extra.EXTRA_BCRADIO_FOLDER_TYPE"。一 下列值:
    • BCRADIO_FOLDER_TYPE_PROGRAMS = 1。目前適用的計畫。
    • BCRADIO_FOLDER_TYPE_FAVORITES = 2。收藏。
    • BCRADIO_FOLDER_TYPE_BAND = 3。特定錶帶的所有實體頻道。

    不需要定義任何無線電專用的自訂中繼資料欄位 相關資料會融入現有的 MediaBrowser.MediaItem 配置:

    • 方案名稱 (RDS PS、DAB 服務名稱): MediaDescription.getTitle
    • FM 展示頻率。 URI (請參閱 ProgramSelector) 或 MediaDescription.getTitle (如果項目位於 BROADCASTRADIO_FOLDER_TYPE_BAND 資料夾中)。
    • 無線電專屬 ID (RDS PI、DAB SId)。 MediaDescription.getMediaUri 已剖析為 ProgramSelector。

    一般來說,您不需要擷取 目前的計劃或最愛清單 (因為客戶應對媒體 ID)。但如果這類需求出現錯誤 (例如為了展示用途), 會出現在 URI 中,且可剖析為 ProgramSelector。 也就是說,我們不建議使用 URI 選取目前項目中的項目 會很有幫助詳情請參閱 ProgramSelector

    為避免效能或繫結器相關問題,MediaBrowser 服務必須支援分頁功能:

    注意:根據預設,分頁會實作在 onLoadChildren()

    各種清單類型 (原始頻道、找到的節目和 「我的收藏」) 可能會有不同的 mediaId (這是電台應用程式;支援) 都是不同的程式庫URI (ProgramSelector 表單) 不同 與多數情況下所發現的計畫之間產生差異 (FM 除外) 沒有 RDS),但在已找到的程式和收藏的程式之間大致相同 (除了 例如 AF 更新時)。

    對來自不同類型清單的項目使用不同的 mediaId 並採取不同的行動瀏覽「我的收藏」清單或 「onSkipToNext」上的所有程式清單 (視最近的資料夾而定) 已選取 MediaItem 個 (請參閱 MediaSession)。

    特殊調整動作

    計劃清單可讓使用者選擇收聽特定電台,但不允許使用者 提出一般要求,例如「Tune to FM」,這類要求可能會導致系統微調 收聽了 FM 錶帶的電台。

    為了支援這類動作,有些頂層目錄 FLAG_PLAYABLE 標記集 (以及 FLAG_BROWSABLE 適用於資料夾)。

    動作 歌曲 問題解決方式
    播放電台 任何電台頻道 startService(ACTION_PLAY_BROADCASTRADIO)



    playFromMediaId(MediaBrowser.getRoot())
    播放 FM 任何 FM 頻道 使用 FM 錶帶 mediaId 播放。

    應用程式要自行決定要調整的節目。這是 這通常是指定清單中的頻道最近期的觀眾群如要進一步瞭解 ACTION_PLAY_BROADCASTRADIO,請參閱 一般播放意圖

    探索與服務連線

    PackageManager 可直接尋找 MediaBrowserService 提供廣播電台 。方法是呼叫 resolveService 具有 ACTION_PLAY_BROADCASTRADIO 意圖 (請參閱 一般播放意圖) 和 MATCH_SYSTEM_ONLY 旗標。如要尋找提供電台的所有服務 ( 可能不只一個例如分別代表 AM/FM 和衛星 queryIntentServices

    解析的服務會處理 android.media.browse.MediaBrowserService 繫結 意圖。你已通過 GTS 驗證。

    如要連線至所選 MediaBrowserService, 建立 特定服務元件和 connectMediaBrowser 執行個體。 建立連線後,可透過以下方式取得 MediaSession 的控制代碼 getSessionToken

    Radio 應用程式可以限制可在 onGetRoot 實作他們的服務應用程式應允許系統應用程式 不要列入許可清單如要進一步瞭解如何加入許可清單,請參閱 接受 Google 助理應用程式套件和簽名

    如果來源專屬應用程式 (例如無線電應用程式) 安裝在 裝置,即使不支援這類來源,仍會進行宣傳,就像處理 ACTION_PLAY_BROADCASTRADIO 意圖,但其 MediaBrowser 樹狀結構 不含無線電專用的標記。因此,客戶願意查看 來源適用於特定裝置,必須符合以下條件:

    1. 探索電台服務 (呼叫 resolveServiceACTION_PLAY_BROADCASTRADIO)。
    2. 建立 MediaBrowser 然後連線。
    3. 使用 EXTRA_BCRADIO_FOLDER_TYPE 判斷 MediaItem 是否存在 外加。

    注意: 在大多數情況下,用戶端必須掃描所有 可用的 MediaBrowser 樹狀結構來偵測特定裝置的所有可用來源。

    頻帶名稱

    頻段清單是由一組包含資料夾類型的頂層目錄所表示 代碼已設為 BCRADIO_FOLDER_TYPE_BAND。對方MediaItem的 標題是代表樂團名稱的本地化字串。在多數情況下 與英文翻譯相同,但用戶端無法依賴這種假設。

    為了提供穩定的尋找特定錶帶的機制, 已為錶帶資料夾 EXTRA_BCRADIO_BAND_NAME_EN 新增額外的標記。這是 未本地化的錶帶名稱,且只能使用下列其中一個預先定義的值:

    • AM
    • FM
    • DAB

    如果錶帶不在這份清單中,則不應設定錶帶名稱標籤。 但如果錶帶在清單中,就必須設定標籤。HD 高畫質電台無法播放 列舉不同的錶帶,因為它們使用與 AM/FM 相同的基礎媒介。

    一般播放意圖

    凡是專門用來播放特定來源 (例如無線電或 CD) 的應用程式,都必須處理 一般的 play 意圖,可能是從 閒置狀態 (例如啟動後)。應用程式選擇要如何選取內容 播放,但通常是最近播放的廣播節目或 CD 曲目 為每個音訊來源定義的意圖:

    • android.car.intent.action.PLAY_BROADCASTRADIO
    • android.car.intent.action.PLAY_AUDIOCD:CD-DA 或 CD-Text
    • android.car.intent.action.PLAY_DATADISC:光學資料光碟,例如 CD/DVD,但非 CD-DA (可能是混合模式 CD)
    • android.car.intent.action.PLAY_AUX:未指定 AUX 通訊埠
    • android.car.intent.action.PLAY_BLUETOOTH
    • android.car.intent.action.PLAY_USB:未指定 USB 裝置
    • android.car.intent.action.PLAY_LOCAL:本機媒體儲存空間 (內建 Flash)

    已選擇將 Intent 用於一般播放指令,因為意圖可以解決 同時支援兩項問題:一般玩指令本身和服務探索。 擁有這類意圖的其他優點也能是 而不必開啟 MediaBrowser 工作階段

    透過這些功能,服務探索其實是更重要的問題 意圖。採用這種方式探索服務的程序簡單又不失奇 (請參閱 探索與服務連線)。

    為了簡化部分用戶端導入程序,您可以使用 發出這類 Play 指令 (無線電應用程式也必須執行這個指令): 發出 playFromMediaId,並向根節點的 rootId 發出 (使用 mediaId)。雖然 根節點 也不得播放,其 rootId 是任意字串 也可用做 mediaId不過,您不一定要使用用戶端 以便理解這一細微差異

    程式選取器

    雖然 mediaId 足以從 MediaBrowserService,會繫結至工作階段,且不一致 可讓供應商簽訂合約在某些情況下,用戶端可能需要使用絕對指標 (例如 絕對頻率) 有助於在工作階段和裝置之間維持相同設定。

    在數位無線電廣播的時代,光是展示頻率仍不足以致於 微調到指定電台因此,請使用 ProgramSelector 微調 類比頻道或數位頻道ProgramSelector 包含兩個部分:

    • 主要 ID。指定電台的專屬固定 ID 保持不變,但可能無法根據該電台進行微調。例如: RDS PI 代碼,可轉譯為美國的呼號。
    • 次要 ID。適合調整作業的其他 ID 到達該車站 (例如頻率),可能包括其他供應商的 ID 無線電技術舉例來說,DAB 電台可能會有類比廣播備用。

    ProgramSelector 融入 MediaBrowser。 以 MediaSession 為基礎的解決方案,定義用於序列化的 URI 結構定義。結構定義為 定義如下:

    broadcastradio://program/<primary ID type>/<primary ID>?
    <secondary ID type>=<secondary ID>&<secondary ID type>=<secondary ID>

    在這個範例中,次要 ID 部分 (位於問號 (?) 之後) 是 選用;您可以移除這個資料欄,藉此提供做為 mediaId 使用的固定 ID。 例如:

    • broadcastradio://program/RDS_PI/1234?AMFM_FREQUENCY=88500&AMFM_FREQUENCY=103300
    • broadcastradio://program/AMFM_FREQUENCY/102100
    • broadcastradio://program/DAB_SID_EXT/14895264?RDS_PI=1234

    program 的主機名稱 (AKA 主機) 為 日後才會是架構擴充功能ID 類型字串已精確指定 做為 IdentifierType 的 HAL 2.x 定義中的名稱,以及值 格式為十進位或十六進位 (含 0x 前置字元) 的數字。

    所有供應商專屬 ID 以 VENDOR_ 表示 前置字串。例如,VENDOR_0 代表 VENDOR_START 和 前 VENDOR_START + 1 的 VENDOR_1。這類 URI 是 用來產生音訊的無線電硬體,但無法在裝置間轉移 是由不同原始設備製造商 (OEM) 製作的

    這些 URI 必須指派給頂層圓形按鈕中的每個 MediaItem 資料夾。此外,MediaSession 必須同時支援 playFromMediaIdplayFromUri。不過,URI 主要用於無線電 中繼資料擷取 (例如 FM 頻率) 和永久儲存空間由於沒有 確保所有媒體項目都會提供此 URI (例如當 ID 類型)。另一方面,媒體 ID 一律有效。 我們不建議客戶使用 URI 選取 目前的 MediaBrowser 工作階段。請改用 playFromMediaId。儘管如此 對服務應用程式而言,不可選用,而缺少的 URI 則保留給合理情況下使用。

    初始設計使用單一冒號,而非 :// 序列 配置下的所有字元不過,這個 Pod 不支援 android.net.Uri 適用於絕對階層 URI 參照。

    其他來源類型

    其他音訊來源的處理方式也相同。例如輔助輸入和 音訊 CD 播放器。

    單一應用程式可提供多種來源。此時 我們建議您為 每種來源即使是在設定包含多個放送來源/MediaBrowserServices 中 強烈建議在單一請求中採用單一 MediaSession 應用程式。

    音訊 CD

    與提供這類磁碟的應用程式類似「音訊 CD」 以單一可瀏覽的項目公開 MediaBrowser (如果系統有 CD 變更器),反而含有指定 CD 的所有音軌。如果系統 不具備每張 CD 音軌的知識 (例如: 一口氣插入墨水匣,但無法全部閱讀) 後 整個磁碟的 MediaItem 會是 PLAYABLE,而不是 BROWSABLE加上 PLAYABLE。如果叢集中沒有磁碟 指定版位時,該項目不是 PLAYABLEBROWSABLE 但每個運算單元都必須出現在樹狀結構中。

     音訊 CD 樹狀結構結構
    圖 3 音訊 CD 樹狀結構。

    這些項目的標示方式與廣播無線電資料夾類似 為;這些欄位會包含 MediaDescription API 中定義的額外欄位:

    • EXTRA_CD_TRACK:對於音訊 CD 的每 MediaItem, 使用 1 組曲目編號。
    • EXTRA_CD_DISK:1 型磁碟編號。

    如果是啟用 CD-Text 的系統和相容的磁碟,頂層 MediaItem 會 還有磁碟的標題同樣地,曲目的 MediaItem 也具備 曲目的名稱

    輔助輸入

    提供輔助輸入的應用程式會顯示具有單一項目 (或更多) 的 MediaBrowser 樹狀結構 多個通訊埠時),請以通訊埠中的 AUX 輸入。相應的 MediaSession 採用 取得 playFromMediaId 要求後,媒體 ID 並切換至該來源。

    AUX 樹狀結構
    圖 4. AUX 樹狀結構。

    每個 AUX MediaItem 項目都有一個額外欄位 EXTRA_AUX_PORT_NAME 已設為通訊埠的非本地化名稱 不含「AUX」詞組。例如「AUX 1」應設為「1」或「AUX」 正面」到「Front」以及「AUX」空字串在非英文地區,名稱 標記保持不變。不太可能像 EXTRA_BCRADIO_BAND_NAME_EN,這個值是由 OEM 定義,而非 受限於預先定義清單

    如果硬體可偵測到連接至 AUX 通訊埠的裝置,硬體應會標示 將 MediaItem 視為 PLAYABLE (僅限輸入已連結)。硬體應該 如果沒有連接至此項目,則仍會列舉 (但不會使用 PLAYABLE) 通訊埠。如果硬體沒有這類功能,則 MediaItem 必須一律設為 PLAYABLE

    多餘欄位

    請定義下列欄位:

    • EXTRA_CD_TRACK = "android.media.extra.CD_TRACK"
    • EXTRA_CD_DISK = "android.media.extra.CD_DISK"
    • EXTRA_AUX_PORT_NAME = "android.media.extra.AUX_PORT_NAME"

    用戶端必須審查頂層 MediaItems,找出具有 EXTRA_CD_DISKEXTRA_AUX_PORT_NAME 個額外欄位 設定。

    詳細範例

    下列範例說明 這次設計的一部分

    廣播電台 MediaBrowserService (處理常式 ACTION_PLAY_BROADCASTRADIO):

    • 電台 (可瀏覽)EXTRA_BCRADIO_FOLDER_TYPE=BCRADIO_FOLDER_TYPE_PROGRAMS
      • BBC One (可播放) URI: broadcastradio://program/RDS_PI/1234?AMFM_FREQUENCY=90500
      • ABC 88.1 (可播放) URI: broadcastradio://program/RDS_PI/5678?AMFM_FREQUENCY=88100
      • ABC 88.1 HD1 (可播放) URI: broadcastradio://program/HD_STATION_ID_EXT/158241DEADBEEF?AMFM_FREQUENCY=88100&RDS_PI=5678
      • ABC 88.1 HD2 (可播放) URI: broadcastradio://program/HD_STATION_ID_EXT/158242DEADBEFE
      • FM 90.5 (可播放) - FM 但不使用 RDSURI: broadcastradio://program/AMFM_FREQUENCY/90500
      • 620 AM (可播放) URI: broadcastradio://program/AMFM_FREQUENCY/620
      • BBC One (可播放) URI:broadcastradio://program/DAB_SID_EXT/1E24102?RDS_PI=1234
    • 收藏 (可瀏覽、可播放)EXTRA_BCRADIO_FOLDER_TYPE=BCRADIO_FOLDER_TYPE_FAVORITES
      • BBC One (可播放) URI:broadcastradio://program/RDS_PI/1234?AMFM_FREQUENCY=101300
      • BBC 二 (無法播放)URI:broadcastradio://program/RDS_PI/1300?AMFM_FREQUENCY=102100
    • AM (可瀏覽、可播放): EXTRA_BCRADIO_FOLDER_TYPE=BCRADIO_FOLDER_TYPE_BANDEXTRA_BCRADIO_BAND_NAME_EN="AM"
      • 上午 530 點 (可播放) URI:broadcastradio://program/AMFM_FREQUENCY/530
      • 540 AM (可播放) URI:broadcastradio://program/AMFM_FREQUENCY/540
      • 上午 550 點 (可播放) URI:broadcastradio://program/AMFM_FREQUENCY/550
    • FM (可瀏覽、可播放): EXTRA_BCRADIO_FOLDER_TYPE=BCRADIO_FOLDER_TYPE_BANDEXTRA_BCRADIO_BAND_NAME_EN="FM"
      • 87.7 FM (可播放) URI:broadcastradio://program/AMFM_FREQUENCY/87700
      • 87.9 FM (可播放) URI:broadcastradio://program/AMFM_FREQUENCY/87900
      • 88.1 FM (可播放) URI:broadcastradio://program/AMFM_FREQUENCY/88100
    • DAB (可播放):EXTRA_BCRADIO_FOLDER_TYPE=BCRADIO_FOLDER_TYPE_BANDEXTRA_BCRADIO_BAND_NAME_EN="DAB"

    Audio CD MediaBrowserService (處理常式 ACTION_PLAY_AUDIOCD):

    • 光 1 (可播放) EXTRA_CD_DISK=1
    • 光 2 (可供瀏覽,可播放) EXTRA_CD_DISK=2
      • 音軌 1 (可播放) EXTRA_CD_TRACK=1
      • 音軌 2 (可播放) EXTRA_CD_TRACK=2
    • 我的音樂 CD (可瀏覽、可播放) EXTRA_CD_DISK=3
      • 我自己 (可播放) EXTRA_CD_TRACK=1
      • 改寫、改造 (可播放) EXTRA_CD_TRACK=2
    • 空白版位 4 (無法播放) EXTRA_CD_DISK=4

    AUX MediaBrowserService (處理 ACTION_PLAY_AUX):

    • AUX 正面 (可播放) EXTRA_AUX_PORT_NAME="front"
    • AUX 背面 (可試玩) EXTRA_AUX_PORT_NAME="rear"