Gracias a la compatibilidad con el framework de Android 14, los OEMs pueden configurar decodificadores (STB) y dispositivos de transmisión libre (OTT) con bocinas integradas o conectadas para que funcionen como barras de sonido para dispositivos conectados. El modo de barra de sonido dinámico (DSM) en Android 14 admite los atributos de control de productos electrónicos de consumo (CEC) de HDMI para barras de sonido, como el canal de retorno de audio (ARC) y el control de audio del sistema.
Esta función solo se orienta a dispositivos de reproducción CEC de Android TV.
Requisitos
Para adoptar la función de barra de sonido, los OEMs deben cumplir con los requisitos del dispositivo y de la IU del sistema que se indican en esta sección.
Requisitos del dispositivo
Para admitir DSM, el STB o el dispositivo OTT deben cumplir con los siguientes requisitos:
- El dispositivo debe ejecutar Android 14.
- Cuando DSM está habilitado, el dispositivo debe comportarse como una barra de sonido según las especificaciones de HDMI CEC, como ARC.
- El dispositivo debe ser capaz de reproducir sonido en bocinas integradas o conectadas.
- Cuando el dispositivo no es una fuente activa, todo el contenido multimedia se debe pausar en él, lo que limita su consumo de energía.
Requisitos de la IU del sistema
Para admitir DSM, los OEMs deben cumplir con los siguientes requisitos cuando diseñen la IU del sistema:
- La etiqueta de la IU debe incluir una referencia a ARC o al canal de retorno de audio (ARC).
- La IU debe informar al usuario que conecte el dispositivo al puerto ARC de la TV para establecer la conexión ARC.
- La IU debe informar al usuario que es posible que la función no funcione según lo esperado si hay otra barra de sonido o receptor de audio y video (receptor AVR) conectado a la red HDMI.
- La IU debe informar al usuario que la pantalla podría parpadear cuando se active el parámetro de configuración.
- Si el dispositivo no tiene bocinas integradas, DSM debe estar inhabilitado de forma predeterminada.
Como práctica recomendada, te sugerimos que uses el menú Pantalla y sonido como la ubicación del parámetro de configuración del usuario para habilitar o inhabilitar ARC, como se muestra en la implementación de SysUI.
Implementación del framework
La implementación de la funcionalidad de barra de sonido CEC y la asignación dinámica de la dirección lógica 5 existen en el framework de Android. El framework asigna la dirección lógica cuando se habilita la configuración de la barra de sonido para que el dispositivo se convierta en una barra de sonido de forma dinámica. Cuando se inhabilita la configuración de la barra de sonido, el framework desaloca la dirección lógica.
Según la entrada del usuario en la IU del sistema, HdmiControlManager
configura CEC_SETTING_NAME_SOUNDBAR_MODE
en SOUNDBAR_MODE_ENABLED
o SOUNDBAR_MODE_DISABLED
. El valor predeterminado de CEC_SETTING_NAME_SOUNDBAR_MODE
se establece en SOUNDBAR_MODE_DISABLED
.
HdmiControlService
escucha el cambio en la configuración de CEC_SETTING_NAME_SOUNDBAR_MODE
para hacer lo siguiente:
- Valida si existe un dispositivo de reproducción local y si se admite la propiedad ARC.
- Activa la asignación de direcciones lógicas para agregar o quitar el dispositivo de audio local.
- Asegúrate de que se conserve el estado de la configuración si el dispositivo se conecta y desconecta.
Consulta el siguiente ejemplo de declaraciones para establecer y obtener el estado del modo de barra de sonido:
/**
* 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() {}
Implementación de OEM
Para admitir la función de barra de sonido dinámica, los OEMs deben asegurarse de que el hardware la admita. Los OEMs deben configurar el dispositivo y implementar la IU del sistema para proporcionar la interfaz requerida para las entradas del usuario.
Implementación de dispositivos
Para admitir la función de barra de sonido en un dispositivo, haz lo siguiente:
- Muestra el dispositivo de reproducción en Android 14.
- Implementa el puerto HDMI ARC en el controlador.
No cambies los valores de RRO de
config_cecSoundbarModeEnabled_default
yconfig_cecSoundbarModeDisabled_default
enconfig.xml
para que la función permanezca inhabilitada de forma predeterminada.Asegúrate de que el dispositivo tenga bocinas integradas o conectadas para reproducir el audio y edita la configuración de la política de audio.
Establece la propiedad del sistema
persist.sys.hdmi.property_arc_support
entrue
para indicar que se admite ARC.Expone el parámetro de configuración para activar o desactivar el modo de barra de sonido en la IU del sistema.
Para depurar, usa el siguiente comando
adb
para activar o desactivar la función de barra de sonido (1
para activar y0
para desactivar):
adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>
Implementación de SysUI
En esta sección, se describe un flujo de IU simulado recomendado para activar y desactivar el DSM. La configuración de Audio output se encuentra en el menú Display & Sound, como se muestra en la Figura 1:
Figura 1: Configuración de salida de audio en el menú Pantalla y sonido
Para que DSM funcione, debes activar el parámetro de configuración Habilitar HDMI-CEC. El parámetro de configuración ARC solo se puede habilitar si está habilitado HDMI-CEC. El parámetro de configuración ARC no está disponible y está inhabilitado si HDMI-CEC está inhabilitado, como se muestra en la Figura 2. En el siguiente flujo de IU, cuando el usuario desactiva el parámetro de configuración Habilitar HDMI-CEC en el menú Pantalla y sonido y selecciona Bocina doméstica, se inhabilita el parámetro de configuración ARC. El usuario puede habilitar el parámetro de configuración Reproducir audio de la televisión si habilita Habilitar HDMI-CEC.
Figura 2: IU para la opción de ARC inhabilitada
Cuando el parámetro de configuración HDMI-CEC está habilitado, el usuario puede usar el parámetro de configuración ARC en Audio output para encender y apagar el DSM. Para encender el DSM, el usuario sigue el flujo de la IU que se muestra en la Figura 3. En el siguiente flujo de IU, para habilitar el modo de barra de sonido, el usuario selecciona Home Speaker y selecciona y confirma la configuración de ARC. Para desactivar DSM, el usuario desactiva el parámetro de configuración ARC.
Figura 3: IU para habilitar DSM
Validación
Los OEMs pueden realizar una prueba de audio para asegurarse de que las bocinas del dispositivo de reproducción reproduzcan el sonido que proviene de la TV o de otros dispositivos conectados al panel de la TV.
Validación manual
Usa las siguientes situaciones para validar de forma manual el comportamiento esperado:
- El parámetro de configuración ARC está habilitado:
- La TV se silencia.
- El sonido de la TV se envía a las bocinas del dispositivo.
- El parámetro de configuración ARC está inhabilitado:
- La TV deja de enrutar el audio al dispositivo.
- La TV comenzará a reproducir audio.
- La configuración de ARC está habilitada y el dispositivo está conectado a un puerto que no es de ARC a la TV:
- El dispositivo no reproduce el sonido de la TV.
- El parámetro de configuración ARC está habilitado y otro dispositivo está usando la dirección lógica 5 antes de que el dispositivo se conecte:
- El dispositivo se comporta como un dispositivo de reproducción puro, no como una barra de sonido.
- El parámetro de configuración de ARC está habilitado, el dispositivo usa la dirección lógica 5 y hay otro sistema de audio conectado a la red:
- No hay cambios en el comportamiento de la barra de sonido del dispositivo.
- El parámetro de configuración ARC está habilitado, el dispositivo conectado a un puerto que no es ARC está usando la dirección lógica 5 y otro sistema de audio está conectado al puerto ARC:
- La conexión ARC no se establece con la TV para el segundo sistema de audio porque usa una dirección lógica no registrada.
- La configuración de ARC está habilitada y el dispositivo se conecta y desconecta:
- El dispositivo sigue el comportamiento normal como cuando el parámetro de configuración está habilitado.
Validación de CTS
CtsHdmiCecHostTestCases
es obligatorio que se apruebe cuando se inhabilita la configuración de la barra de sonido. La prueba HdmiCecSoundbarModeTest.java
en el paquete de pruebas CtsHdmiCecHostTestCases
prueba las funciones de DSM.
Aunque no es un requisito de certificación, ejecuta CtsHdmiCecHostTestCases
con la configuración de la barra de sonido habilitada para validar tu implementación.
Consulta Pruebas de CTS de CEC para dispositivos Android TV para ejecutar las pruebas de CTS de Android para HDMI-CEC.