Modalità soundbar dinamica

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

Questa funzionalità ha come target solo i dispositivi di riproduzione CEC Android TV.

Requisiti

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

Requisiti del dispositivo

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

  • Sul dispositivo deve essere installato Android 14.
  • Quando la funzionalità DSM è attiva, il dispositivo deve comportarsi come una soundbar seguendo le specifiche HDMI CEC, ad esempio ARC.
  • Il dispositivo deve essere in grado di riprodurre l'audio su altoparlanti integrati o collegati.
  • Quando il dispositivo non è un'origine attiva, tutti i contenuti multimediali devono essere messi in pausa sul dispositivo, limitando il consumo energetico.

Requisiti dell'interfaccia utente di sistema

Per supportare DSM, gli OEM devono soddisfare i seguenti requisiti durante la progettazione dell'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 nella rete HDMI è collegato un altro sintoamplificatore o ricevitore audio-video (AVR).
  • L'interfaccia utente deve informare l'utente che lo schermo potrebbe sfarfallare quando attiva/disattiva l'impostazione.
  • Se il dispositivo non ha altoparlanti integrati, la funzionalità DSM deve essere disattivata 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 è attivata, 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 dell'utente nell'interfaccia utente 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 tramite hot plug.

Consulta il seguente esempio di dichiarazioni per impostare e ottenere lo stato della modalità della 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 lo supporti. Gli OEM devono configurare il dispositivo e implementare l'interfaccia utente di sistema per fornire l'interfaccia richiesta per gli input utente.

Implementazione del dispositivo

Per supportare la funzionalità della soundbar su un dispositivo:

  1. Apri 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 dei criteri 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à della soundbar nell'interfaccia utente di sistema.

  7. Per il debug, utilizza il seguente comando adb per attivare o disattivare la funzionalità della 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 consigliato della UI simulata per attivare e disattivare il DSM. L'impostazione 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 Attiva HDMI-CEC deve essere attivata. L'impostazione ARC può essere attivata solo se è attivo HDMI-CEC. L'impostazione ARC non è disponibile e viene 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 da casa, 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 il DSM. Per attivare il DSM, l'utente segue il flusso della UI nella figura 3. Nel seguente flusso dell'interfaccia utente, per attivare la modalità soundbar, l'utente seleziona Altoparlante da casa, 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 della TV.

Convalida manuale

Utilizza i seguenti scenari per convalidare manualmente il comportamento previsto:

  • L'impostazione ARC è attivata:
    • La TV si mette in modalità silenziosa.
    • L'audio della TV viene indirizzato agli altoparlanti del dispositivo.
  • L'impostazione ARC è disattivata:
    • La TV smette di inviare l'audio al dispositivo.
    • La TV inizia a riprodurre l'audio.
  • L'impostazione ARC è attivata e il dispositivo è collegato a una porta non ARC della TV:
    • Il dispositivo non riproduce l'audio della TV.
  • L'impostazione ARC è attivata 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 impianto audio è collegato alla rete:
    • Il comportamento della soundbar del dispositivo non cambia.
  • L'impostazione ARC è attivata, l'indirizzo logico 5 è in uso dal dispositivo collegato a una porta non ARC e un altro impianto audio è collegato alla porta ARC:
    • La connessione ARC non è stata stabilita con la TV per il secondo sistema audio perché utilizza un indirizzo logico non registrato.
  • L'impostazione ARC è attivata e il dispositivo è collegato tramite hot plug:
    • Il dispositivo segue il comportamento normale quando l'impostazione è attivata.

Convalida CTS

CtsHdmiCecHostTestCases è obbligatorio quando l'impostazione della soundbar è disattivata. Il test HdmiCecSoundbarModeTest.java nella suite di test CtsHdmiCecHostTestCases testa le funzionalità DSM.

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

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