有了 Android 14 架構支援,原始設備製造商 (OEM) 就能將機上盒 (STB) 和 Over-the-top (OTT) 裝置內建或連接的喇叭,設定為連網裝置的條形音箱。Android 14 中的動態單件式環繞劇院模式 (DSM) 支援單件式環繞劇院的 HDMI 消費性電子產品控制 (CEC) 屬性,例如音訊回傳通道 (ARC) 和系統音訊控制。
這項功能僅適用於 Android TV CEC 播放裝置。
需求條件
如要採用條形音箱功能,原始設備製造商 (OEM) 必須符合本節所列的裝置和 System UI 需求。
裝置需求
如要支援 DSM,STB 或 OTT 裝置必須符合下列條件:
- 裝置必須搭載 Android 14。
- 啟用 DSM 時,裝置必須按照 HDMI CEC 規格 (例如 ARC) 的做法,像單件式環繞劇院一樣運作。
- 裝置必須能夠在內建或連接的喇叭上播放音效。
- 當裝置不是有效來源時,所有媒體都必須在裝置上暫停,以限制其耗電量。
系統 UI 需求
如要支援 DSM,原始設備製造商在設計系統使用者介面時,必須符合下列規定:
- UI 標籤必須包含 ARC 或 音頻回傳通道 (ARC) 的參照。
- 使用者介面必須通知使用者將裝置連接至電視的 ARC 連接埠,以建立 ARC 連線。
- 如果 HDMI 網路中連接了其他單件式環繞劇院或影音接收器 (AVR),使用者介面必須通知使用者,這項功能可能無法正常運作。
- UI 必須告知使用者,切換設定時螢幕可能會閃爍。
- 如果裝置沒有內建喇叭,則必須預設停用 DSM。
建議您使用「顯示與音效」選單,做為使用者設定的存放位置,以便啟用或停用 ARC,如SysUI 實作所示。
架構實作
Android 架構中實作了 CEC 聲霸功能,並動態分配邏輯位址 5。啟用條形音箱設定時,架構會分配邏輯位址,讓裝置能動態成為條形音箱。停用條形音箱設定時,架構會釋放邏輯位址。
根據使用者在系統 UI 上的輸入內容,HdmiControlManager
會將 CEC_SETTING_NAME_SOUNDBAR_MODE
設為 SOUNDBAR_MODE_ENABLED
或 SOUNDBAR_MODE_DISABLED
。CEC_SETTING_NAME_SOUNDBAR_MODE
的預設值設為 SOUNDBAR_MODE_DISABLED
。
HdmiControlService
會監聽 CEC_SETTING_NAME_SOUNDBAR_MODE
設定的變更,並執行下列操作:
- 確認本機播放裝置是否存在,以及是否支援 ARC 屬性。
- 觸發邏輯位址分配,以新增或移除本機音訊裝置。
- 確保在裝置熱插電時,設定狀態會保留。
請參閱下列宣告範例,瞭解如何設定及取得條件式音效板模式的狀態:
/**
* Name of a setting deciding whether the Soundbar mode feature is enabled.
* Before exposing this setting make sure the hardware supports it, otherwise, you may
* experience multiple issues.
*
* @see HdmiControlManager#setSoundbarMode(int)
*/
public static final String CEC_SETTING_NAME_SOUNDBAR_MODE = "soundbar_mode";
/**
* Soundbar mode feature enabled.
*/
public static final int SOUNDBAR_MODE_ENABLED = 1;
/**
* Soundbar mode feature disabled.
*/
public static final int SOUNDBAR_MODE_DISABLED = 0;
/**
* Set the status of Soundbar mode feature.
*
* This allows to enable/disable Soundbar mode on the playback device.
* The setting's effect will be available on devices where the hardware supports this feature.
* If enabled, an audio system local device will be allocated and try to establish an ARC
* connection with the TV. If disabled, the ARC connection will be terminated and the audio
* system local device will be removed from the network.
*/
public void setSoundbarMode(@SoundbarMode int value) {
}
/**
* Get the current status of Soundbar mode feature.
*
* Reflects whether Soundbar mode is currently enabled on the playback device.
* If enabled, an audio system local device will be allocated and try to establish an ARC
* connection with the TV. If disabled, the ARC connection will be terminated and the audio
* system local device will be removed from the network.
*/
public int getSoundbarMode() {}
原始設備製造商 (OEM) 實作
如要支援動態條形音箱功能,原始設備製造商必須確保硬體支援該功能。OEM 必須設定裝置,並實作系統 UI,為使用者輸入提供必要的介面。
裝置實作
如要支援裝置的單件式環繞劇院功能:
- 在 Android 14 上顯示播放裝置。
- 在驅動程式中插入 HDMI ARC 連接埠。
在
config.xml
中,請保留config_cecSoundbarModeEnabled_default
和config_cecSoundbarModeDisabled_default
的 RRO 值,以便預設情況下繼續停用這項功能。確認裝置內建或已連接的喇叭,可用於播放音訊,並編輯音訊政策設定。
將系統屬性
persist.sys.hdmi.property_arc_support
設為true
,表示支援 ARC。如要進行偵錯,請使用以下
adb
指令開啟或關閉單件式環繞劇院功能 (1
為開啟,0
為關閉):
adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>
SysUI 實作
本節說明建議的模擬 UI 流程,可用於開啟及關閉 DSM。音訊輸出設定位於「顯示和音效」選單下方,如圖 1 所示:
圖 1. 在「顯示和音效」選單中找到「音訊輸出」設定。
如要使用 DSM,請務必開啟「啟用 HDMI-CEC」設定。只有在啟用 HDMI-CEC 的情況下,才能啟用 ARC 設定。如果 HDMI-CEC 處於停用狀態,ARC 設定就無法使用,如圖 2 所示。在下列 UI 流程中,當使用者關閉「Display &Sound」選單中的「Enable HDMI-CEC」設定,然後選取「Home Speaker」時,「ARC」設定就會停用。使用者可透過啟用 [Enable HDMI-CEC] (啟用 HDMI-CEC) 功能來啟用「Play TV Audio」設定。
圖 2. 已停用 ARC 選項的使用者介面。
啟用 HDMI-CEC 設定後,使用者可以使用「Audio output」下方的「ARC」設定開啟或關閉 DSM。如要開啟 DSM,使用者請按照圖 3 中的 UI 流程操作。在下列 UI 流程中,如要啟用條形音箱模式,使用者必須選取「Home Speaker」,然後選取並確認「ARC」設定。如要關閉 DSM,使用者必須關閉 ARC 設定。
圖 3. 啟用 DSM 的使用者介面。
驗證
原始設備製造商 (OEM) 可以執行音訊測試,確保播放裝置的喇叭播放的音訊是來自電視,或其他連接到電視面板的裝置。
手動驗證
請使用下列情境手動驗證預期行為:
- 已啟用 ARC 設定:
- 電視會自動設為靜音。
- 電視音訊會傳送到裝置的揚聲器。
- ARC 設定已停用:
- 電視會停止將音訊傳送至裝置。
- 電視開始播放音訊。
- 已啟用 ARC 設定,且裝置已連接至電視的非 ARC 連接埠:
- 裝置不會播放電視音效。
- ARC 設定已啟用,且在裝置連線前的其他裝置使用了邏輯位址 5:
- 裝置的行為就像純播放裝置,而不是條形音箱。
- ARC 設定已啟用,裝置正在使用邏輯位址 5,且網路中已連線另一個音訊系統:
- 裝置的條形音箱行為沒有任何變化。
- ARC 設定已啟用,連線非 ARC 通訊埠的裝置正在使用邏輯位址 5,另一個音訊系統則連線至 ARC 通訊埠:
- 由於第二個音訊系統使用未註冊的邏輯位址,因此 ARC 連線無法與電視建立連線。
- 已啟用 ARC 設定,且裝置已熱插拔:
- 裝置會按照啟用設定時的正常行為運作。
CTS 驗證
停用條形音箱設定時,必須傳送 CtsHdmiCecHostTestCases
。CtsHdmiCecHostTestCases
測試套件中的 HdmiCecSoundbarModeTest.java
測試會測試 DSM 功能。
雖然這不是認證要求,但請啟用條形音箱設定,並執行 CtsHdmiCecHostTestCases
,驗證您的實作方式。
如要針對 HDMI CEC 進行 Android CTS 測試,請參閱「Android TV 裝置的 CEC CTS 測試」。