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:
- Visualizza il dispositivo di riproduzione su Android 14.
- Implementa la porta HDMI ARC nel driver.
Lascia invariati i valori RRO di
config_cecSoundbarModeEnabled_defaulteconfig_cecSoundbarModeDisabled_defaultinconfig.xmlin modo che la funzionalità rimanga disattivata per impostazione predefinita.Assicurati che il dispositivo abbia altoparlanti integrati o collegati per riprodurre l'audio e modifica la configurazione della policy audio.
Imposta la proprietà di sistema
persist.sys.hdmi.property_arc_supportsutrueper indicare che ARC è supportato.Mostra l'impostazione per attivare/disattivare la modalità soundbar nell'interfaccia utente di sistema.
Per il debug, utilizza il seguente comando
adbper attivare o disattivare la funzionalità soundbar (1per attivare e0per 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:
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.
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.
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.