Modalità soundbar dinamica

Con il supporto del framework Android 14, i set-top box (STB) e i dispositivi over-the-top (OTT) con altoparlanti integrati o collegati possono essere configurati come soundbar per i dispositivi connessi. La modalità soundbar dinamica (DSM) in Android 14 supporta gli attributi di controllo dell'elettronica di consumo (CEC) HDMI per le soundbar, come il canale di ritorno audio (ARC) e il controllo audio del sistema.

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

Requisiti

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

Requisiti del dispositivo

Per supportare DSM, il dispositivo STB/OTT deve soddisfare i seguenti requisiti:

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

Requisiti dell'interfaccia utente di sistema

Per supportare DSM, gli OEM devono soddisfare i seguenti requisiti durante la progettazione dell'interfaccia utente del 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 connettere 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 ricevitore audio/video (AVR) è collegato alla rete HDMI.
  • L'interfaccia utente deve informare l'utente che lo schermo potrebbe sfarfallare quando si cambia l'impostazione.
  • Se il dispositivo non dispone di altoparlanti integrati, DSM deve essere disabilitato per impostazione predefinita.

Procedura consigliata: consigliamo di utilizzare il menu Display e audio come posizione in cui impostare l'utente per abilitare o disabilitare ARC , come mostrato nell'implementazione SysUI .

Implementazione del quadro

L'implementazione della funzionalità soundbar CEC e l'assegnazione dinamica dell'indirizzo logico 5 esiste nel framework Android. Il framework assegna l'indirizzo logico quando l'impostazione della soundbar è abilitata, affinché il dispositivo diventi dinamicamente una soundbar. Quando l'impostazione della soundbar è disabilitata, il framework dealloca l'indirizzo logico.

In base all'input dell'utente nell'interfaccia utente del 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 nell'impostazione CEC_SETTING_NAME_SOUNDBAR_MODE per effettuare le seguenti operazioni:

  • Convalida se esiste un dispositivo di riproduzione locale e la proprietà ARC è supportata.
  • Attiva l'allocazione dell'indirizzo logico per aggiungere o rimuovere il dispositivo audio locale.
  • Assicurarsi che lo stato dell'impostazione venga preservato, 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.
     *
     * <p>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.
     *
     * <p>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 garantire che l'hardware la supporti. Gli OEM devono configurare il dispositivo e implementare l'interfaccia utente del sistema per fornire l'interfaccia richiesta per gli input dell'utente.

Implementazione del dispositivo

Per supportare la funzione soundbar su un dispositivo:

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

  4. Assicurati che il dispositivo disponga di altoparlanti integrati o collegati per riprodurre l'audio e modifica la configurazione dei criteri audio .

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

  6. Esporre l'impostazione per attivare/disattivare la modalità della soundbar nell'interfaccia utente del sistema .

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

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

Implementazione della SysUI

Questa sezione descrive un flusso di interfaccia utente simulato consigliato per l'attivazione e la disattivazione di DSM. L'impostazione dell'uscita audio si trova nel menu Display e audio , come mostrato nella figura 1:

dsm_audio_output

Figura 1. Impostazione dell'uscita audio nel menu Display e audio .

Affinché DSM funzioni, l'impostazione Abilita HDMI-CEC deve essere attivata. L'impostazione ARC può essere abilitata solo se HDMI-CEC è abilitato. L'impostazione ARC è disattivata e disabilitata se HDMI-CEC è disabilitato come mostrato nella figura 2. Nel seguente flusso dell'interfaccia utente, quando l'utente disattiva l'impostazione Abilita HDMI-CEC nel menu Display e audio e seleziona Altoparlante domestico , l' impostazione ARC l'impostazione è disabilitata. L'utente può abilitare l'impostazione Riproduci audio televisivo abilitando Abilita HDMI-CEC .

dsm_ui_disable_arc

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

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

dsm_ui_enable_arc

Figura 3. Interfaccia utente per abilitare DSM.

Validazione

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

Convalida manuale

Utilizzare i seguenti scenari per convalidare manualmente il comportamento previsto:

  • L'impostazione ARC è abilitata:
    • La TV si disattiva automaticamente.
    • L'audio del televisore viene indirizzato agli altoparlanti del dispositivo.
  • L'impostazione ARC è disabilitata:
    • Il televisore interrompe l'instradamento dell'audio al dispositivo.
    • La TV inizia a riprodurre l'audio.
  • L'impostazione ARC è abilitata e il dispositivo è collegato a una porta non ARC del televisore:
    • Il dispositivo non riproduce l'audio della TV.
  • L'impostazione ARC è abilitata e l'indirizzo logico 5 è utilizzato da un altro dispositivo prima che il dispositivo venga connesso:
    • Il dispositivo si comporta come un puro dispositivo di riproduzione, non come una soundbar.
  • L'impostazione ARC è abilitata, l'indirizzo logico 5 è utilizzato dal dispositivo e un altro sistema audio è connesso alla rete:
    • Non ci sono cambiamenti nel comportamento della soundbar del dispositivo.
  • L'impostazione ARC è abilitata, l'indirizzo logico 5 è utilizzato 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 è abilitata e il dispositivo è collegato a caldo:
    • Il dispositivo segue il comportamento normale come quando l'impostazione è abilitata.

Convalida CTS

È necessario che CtsHdmiCecHostTestCases venga superato quando l'impostazione della soundbar è disabilitata. Il test HdmiCecSoundbarModeTest.java nella suite di test CtsHdmiCecHostTestCases , testa le funzionalità DSM.

Sebbene non sia un requisito di certificazione, esegui CtsHdmiCecHostTestCases con l'impostazione della soundbar abilitata per convalidare l'implementazione.

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