Grazie al supporto del framework Android 14, gli OEM possono configurare set-top box (STB) e dispositivi over-the-top (OTT) con altoparlanti integrati o connessi per fungere da soundbar per i dispositivi connessi. La modalità soundbar dinamica (DSM) in Android 14 supporta gli attributi CEC (Consumer Electronics Control) HDMI per le soundbar, come l'audio return channel (ARC) e il controllo audio del sistema.
Questa funzionalità è destinata solo ai dispositivi di riproduzione CEC Android TV.
Requisiti
Per adottare la funzionalità soundbar, gli OEM devono soddisfare i requisiti del dispositivo e della UI di sistema elencati in questa sezione.
Requisiti del dispositivo
Per supportare DSM, il dispositivo STB o OTT deve soddisfare i seguenti requisiti:
- Sul dispositivo deve essere installato Android 14.
- Quando DSM è abilitato, il dispositivo deve comportarsi come una soundbar seguendo le specifiche HDMI CEC, ad esempio ARC.
- Il dispositivo deve essere in grado di riprodurre suoni su 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 dell'interfaccia utente di sistema:
- L'etichetta dell'interfaccia utente deve includere un riferimento ad ARC o Audio Return Channel (ARC).
- L'UI 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 altro ricevitore audio/video (AVR) è connesso alla rete HDMI.
- L'interfaccia utente deve informare l'utente che lo schermo potrebbe sfarfallare quando attiva/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 dell'impostazione utente per attivare o disattivare ARC, come mostrato in Implementazione 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 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 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 viene 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à di 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à della 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_default
econfig_cecSoundbarModeDisabled_default
inconfig.xml
in 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 delle norme audio.
Imposta la proprietà di sistema
persist.sys.hdmi.property_arc_support
sutrue
per 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
adb
per attivare o disattivare la funzionalità della soundbar (1
per l'attivazione e0
per la disattivazione):
adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>
Implementazione di SysUI
Questa sezione descrive un flusso dell'interfaccia utente simulato e consigliato per attivare e disattivare DSM. L'impostazione Output audio si trova nel menu Display e audio, come mostrato nella figura 1:
Figura 1. Impostazione dell'output audio nel menu Display e audio.
Per il funzionamento di DSM, l'impostazione Attiva HDMI-CEC deve essere attivata. L'impostazione ARC può essere attivata solo se HDMI-CEC è attivato. L'impostazione ARC non è disponibile e viene disattivata se HDMI-CEC è disattivato, come mostrato nella figura 2. Nel flusso dell'interfaccia utente seguente, quando l'utente disattiva l'impostazione Attiva HDMI-CEC nel menu Display e audio e seleziona Speaker per la casa, l'impostazione ARC viene disattivata. L'utente può attivare l'impostazione Riproduci audio TV attivando Attiva HDMI-CEC.
Figura 2. UI 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 Home Speaker e 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 speaker del dispositivo di riproduzione riproducano il suono proveniente dalla TV o da altri dispositivi collegati al pannello della TV.
Convalida manuale
Utilizza gli scenari seguenti per convalidare manualmente il comportamento previsto:
- L'impostazione ARC è attivata:
- La TV si disattiva.
- L'audio della TV viene indirizzato agli speaker del dispositivo.
- L'impostazione ARC è disattivata:
- La TV interrompe il routing dell'audio al dispositivo.
- La TV inizia a riprodurre l'audio.
- L'impostazione ARC è attivata e il dispositivo è connesso 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 connesso:
- Il dispositivo si comporta come un dispositivo di riproduzione puro, non come una soundbar.
- L'impostazione ARC è attivata, l'indirizzo logico 5 è in uso dal dispositivo e
un altro sistema audio è connesso 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 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 è attivata e il dispositivo è collegato a caldo:
- Il dispositivo si comporta normalmente come quando l'impostazione è attiva.
Convalida CTS
CtsHdmiCecHostTestCases
è necessario per superare il test quando l'impostazione della soundbar è disattivata. 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 CTS per CEC per i dispositivi Android TV per eseguire i test CTS di Android per HDMI CEC.