動態單件式環繞劇院模式

有了 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_ENABLEDSOUNDBAR_MODE_DISABLEDCEC_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,為使用者輸入提供必要的介面。

裝置實作

如要在裝置上支援條形音箱功能,請按照下列步驟操作:

  1. 在 Android 14 上顯示播放裝置。
  2. 在驅動程式中實作 HDMI ARC 連接埠。
  3. config.xml 中,請保留 config_cecSoundbarModeEnabled_defaultconfig_cecSoundbarModeDisabled_default 的 RRO 值,以便預設情況下繼續停用這項功能。

  4. 請確認裝置已內建或連接揚聲器,以便播放音訊,然後編輯音訊政策設定

  5. 將系統屬性 persist.sys.hdmi.property_arc_support 設為 true,表示支援 ARC。

  6. 公開設定,在「System UI」中切換條形音箱模式。

  7. 如要進行偵錯,請使用下列 adb 指令開啟或關閉條形音箱功能 (1 代表開啟,0 代表關閉):

adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>

SysUI 實作

本節說明建議的模擬 UI 流程,可用於開啟及關閉 DSM。音訊輸出設定位於「顯示和音效」選單下方,如圖 1 所示:

dsm_audio_output

圖 1. 在「顯示和音效」選單中找到「音訊輸出」設定。

如要使用 DSM,請務必開啟「啟用 HDMI-CEC」設定。只有在啟用 HDMI-CEC 的情況下,才能啟用 ARC 設定。如果 HDMI-CEC 處於停用狀態,ARC 設定就無法使用,如圖 2 所示。在下列 UI 流程中,當使用者在「Display & Sound」選單中關閉「Enable HDMI-CEC」設定,並選取「Home Speaker」時,系統會停用「ARC」設定。使用者可以啟用「啟用 HDMI-CEC」,啟用「播放電視音訊」設定。

dsm_ui_disable_arc

圖 2. 停用 ARC 選項的 UI。

啟用 HDMI-CEC 設定後,使用者可以使用「Audio output」下方的「ARC」設定開啟或關閉 DSM。如要開啟 DSM,使用者請按照圖 3 中的 UI 流程操作。在下列 UI 流程中,如要啟用條形音箱模式,使用者必須選取「Home Speaker」,然後選取並確認「ARC」設定。如要關閉 DSM,使用者必須關閉 ARC 設定。

dsm_ui_enable_arc

圖 3. 啟用 DSM 的使用者介面。

驗證

原始設備製造商 (OEM) 可以執行音訊測試,確保播放裝置的揚聲器播放來自電視或連接至電視面板的其他裝置的音訊。

手動驗證

請使用下列情境手動驗證預期行為:

  • 已啟用 ARC 設定:
    • 電視會自動靜音。
    • 電視音訊會傳送至裝置的喇叭。
  • ARC 設定已停用:
    • 電視會停止將音訊傳送至裝置。
    • 電視開始播放音訊。
  • 已啟用 ARC 設定,且裝置已連接至電視的非 ARC 連接埠:
    • 裝置無法播放電視的聲音。
  • 已啟用 ARC 設定,且在裝置連線前,邏輯位址 5 已由其他裝置使用:
    • 裝置的行為就像純播放裝置,而不是條形音箱。
  • ARC 設定已啟用,裝置正在使用邏輯位址 5,且網路中已連線另一個音訊系統:
    • 裝置的條形音箱行為並未異動。
  • 已啟用 ARC 設定,連接至非 ARC 連接埠的裝置正在使用邏輯位址 5,且另一個音訊系統已連接至 ARC 連接埠:
    • 由於第二個音訊系統使用未註冊的邏輯位址,因此 ARC 連線無法與電視建立連線。
  • 已啟用 ARC 設定,且裝置已熱插拔:
    • 裝置會按照啟用設定時的正常行為運作。

CTS 驗證

停用條形音箱設定時,必須傳送 CtsHdmiCecHostTestCasesCtsHdmiCecHostTestCases 測試套件中的 HdmiCecSoundbarModeTest.java 測試會測試 DSM 功能。

雖然這不是認證要求,但您可以啟用條形音箱設定,執行 CtsHdmiCecHostTestCases,驗證您的實作方式。

請參閱「針對 Android TV 裝置執行 CEC CTS 測試」,瞭解如何針對 HDMI CEC 執行 Android CTS 測試。