Modalità soundbar dinamica

Con il supporto del framework di Android 14, gli OEM possono configurare i set-top box (STB) e i dispositivi over-the-top (OTT) con altoparlanti integrati o collegati in modo che fungano da soundbar per i dispositivi connessi. La modalità soundbar dinamica (DSM) in Android 14 supporta gli attributi HDMI Consumer Electronics Control (CEC) per le soundbar, come Audio Return Channel (ARC) e System Audio Control.

Questa funzionalità è destinata solo ai dispositivi di riproduzione CEC di Android TV.

Requisiti

Per adottare la funzionalità soundbar, gli OEM devono soddisfare i requisiti del dispositivo e dell'UI di sistema elencati in questa sezione.

Requisiti del dispositivo

Per supportare DSM, l'STB o il dispositivo OTT deve soddisfare i seguenti requisiti:

  • Il dispositivo deve eseguire Android 14.
  • Quando DSM è attivo, il dispositivo deve comportarsi come una soundbar in base alle specifiche HDMI CEC, ad esempio ARC.
  • Il dispositivo deve essere in grado di riprodurre l'audio sugli altoparlanti integrati o collegati.
  • Quando il dispositivo non è una sorgente attiva, tutti i contenuti multimediali devono essere messi in pausa sul dispositivo, limitandone il consumo energetico.

Requisiti dell'UI di sistema

Per supportare DSM, gli OEM devono soddisfare i seguenti requisiti durante la progettazione della UI di sistema:

  • L'etichetta dell'interfaccia utente deve includere un riferimento ad ARC o Audio Return Channel (ARC).
  • L'interfaccia utente deve informare l'utente di collegare il dispositivo alla porta ARC della TV per stabilire la connessione ARC.
  • L'interfaccia utente deve informare l'utente che la funzionalità potrebbe non funzionare come previsto se un'altra soundbar o un altro ricevitore audio-video (AVR) è collegato alla rete HDMI.
  • L'interfaccia utente deve informare l'utente che lo schermo potrebbe sfarfallare quando si attiva o disattiva l'impostazione.
  • Se il dispositivo non ha altoparlanti integrati, DSM deve essere disattivato per impostazione predefinita.

Come best practice, ti consigliamo di utilizzare il menu Display e audio come posizione per l'impostazione utente per attivare o disattivare ARC, come mostrato nell' implementazione di SysUI.

Implementazione del framework

L'implementazione della funzionalità della soundbar CEC e l'allocazione dinamica dell'indirizzo logico 5 esistono nel framework Android. Il framework alloca l'indirizzo logico quando l'impostazione della soundbar è attiva, in modo che il dispositivo diventi una soundbar in modo dinamico. Quando l'impostazione della soundbar è disattivata, il framework dealloca l'indirizzo logico.

In base all'input utente nell'UI di sistema, HdmiControlManager imposta CEC_SETTING_NAME_SOUNDBAR_MODE su SOUNDBAR_MODE_ENABLED o SOUNDBAR_MODE_DISABLED. Il valore predefinito di CEC_SETTING_NAME_SOUNDBAR_MODE è impostato su SOUNDBAR_MODE_DISABLED.

HdmiControlService ascolta la modifica dell'impostazione CEC_SETTING_NAME_SOUNDBAR_MODE per eseguire le seguenti operazioni:

  • Verifica se esiste un dispositivo di riproduzione locale e se la proprietà ARC è supportata.
  • Attiva l'allocazione dell'indirizzo logico per aggiungere o rimuovere il dispositivo audio locale.
  • Assicurati che lo stato dell'impostazione venga mantenuto se il dispositivo è collegato a caldo.

Consulta il seguente esempio di dichiarazioni per impostare e ottenere lo stato della modalità soundbar:

    /**
     * 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() {}

Implementazione OEM

Per supportare la funzionalità della soundbar dinamica, gli OEM devono assicurarsi che l'hardware la supporti. Gli OEM devono configurare il dispositivo e implementare la UI di sistema per fornire l'interfaccia richiesta per gli input dell'utente.

Implementazione del dispositivo

Per supportare la funzionalità soundbar su un dispositivo:

  1. Visualizza il dispositivo di riproduzione su Android 14.
  2. Implementa la porta HDMI ARC nel driver.
  3. Lascia invariati i valori RRO di config_cecSoundbarModeEnabled_default e config_cecSoundbarModeDisabled_default in config.xml in modo che la funzionalità rimanga disattivata per impostazione predefinita.

  4. Assicurati che il dispositivo abbia altoparlanti integrati o collegati per riprodurre l'audio e modifica la configurazione della policy audio.

  5. Imposta la proprietà di sistema persist.sys.hdmi.property_arc_support su true per indicare che ARC è supportato.

  6. Mostra l'impostazione per attivare/disattivare la modalità soundbar nell'interfaccia utente di sistema.

  7. Per il debug, utilizza il seguente comando adb per attivare o disattivare la funzionalità soundbar (1 per attivare e 0 per disattivare):

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

Implementazione di SysUI

Questa sezione descrive un flusso dell'interfaccia utente simulato consigliato per attivare e disattivare DSM. L'impostazione Uscita audio si trova nel menu Display e audio , come mostrato nella Figura 1:

dsm_audio_output

Figura 1. Impostazione Uscita audio nel menu Display e audio.

Affinché DSM funzioni, l'impostazione Attiva HDMI-CEC deve essere attivata. L'impostazione ARC può essere attivata solo se HDMI-CEC è attivo. L'impostazione ARC non è disponibile ed è disattivata se HDMI-CEC è disattivato, come mostrato nella Figura 2. Nel seguente flusso dell'interfaccia utente, quando l'utente disattiva l'impostazione Attiva HDMI-CEC nel menu Display e audio e seleziona Altoparlante Home, l'impostazione ARC viene disattivata. L'utente può attivare l'impostazione Riproduci audio della TV attivando Attiva HDMI-CEC.

dsm_ui_disable_arc

Figura 2. Interfaccia utente per l'opzione ARC disattivata.

Quando l'impostazione HDMI-CEC è attiva, l'utente può utilizzare l'impostazione ARC in Uscita audio per attivare e disattivare DSM. Per attivare DSM, l'utente segue il flusso dell'interfaccia utente nella Figura 3. Nel seguente flusso dell'interfaccia utente, per attivare la modalità soundbar, l'utente seleziona Altoparlante Home, quindi seleziona e conferma l'impostazione ARC. Per disattivare DSM, l'utente disattiva l'impostazione ARC.

dsm_ui_enable_arc

Figura 3. Interfaccia utente per attivare DSM.

Convalida

Gli OEM possono eseguire un test audio per assicurarsi che gli altoparlanti del dispositivo di riproduzione riproducano l'audio proveniente dalla TV o da altri dispositivi collegati al pannello TV.

Convalida manuale

Utilizza i seguenti scenari per convalidare manualmente il comportamento previsto:

  • L'impostazione ARC è attiva:
    • La TV si disattiva.
    • L'audio della TV viene indirizzato agli altoparlanti del dispositivo.
  • L'impostazione ARC è disattivata:
    • La TV smette di indirizzare l'audio al dispositivo.
    • La TV inizia a riprodurre l'audio.
  • L'impostazione ARC è attiva e il dispositivo è collegato a una porta non ARC della TV:
    • Il dispositivo non riproduce l'audio della TV.
  • L'impostazione ARC è attiva e l'indirizzo logico 5 è in uso da un altro dispositivo prima che il dispositivo venga collegato:
    • Il dispositivo si comporta come un dispositivo di riproduzione puro, non come una soundbar.
  • L'impostazione ARC è attiva, l'indirizzo logico 5 è in uso dal dispositivo e un altro sistema audio è collegato alla rete:
    • Non si verifica alcuna modifica nel comportamento della soundbar del dispositivo.
  • L'impostazione ARC è attiva, l'indirizzo logico 5 è in uso dal dispositivo collegato a una porta non ARC e un altro sistema audio è collegato alla porta ARC:
    • La connessione ARC non viene stabilita con la TV per il secondo sistema audio perché utilizza un indirizzo logico non registrato.
  • L'impostazione ARC è attiva e il dispositivo è collegato a caldo:
    • Il dispositivo si comporta normalmente come quando l'impostazione è attiva.

Convalida CTS

CtsHdmiCecHostTestCases deve essere superato quando l'impostazione della soundbar è disattivata. Il HdmiCecSoundbarModeTest.java test nella suite di test CtsHdmiCecHostTestCases verifica le funzionalità DSM.

Anche se non è un requisito di certificazione, esegui CtsHdmiCecHostTestCases con l'impostazione della soundbar attiva per convalidare l'implementazione.

Consulta Test CTS CEC per dispositivi Android TV per eseguire i test CTS Android per HDMI CEC.