Gracias a la compatibilidad con el framework de Android 14, los OEMs pueden configurar los dispositivos decodificadores (STB) y de transmisión libre (OTT) con bocinas integradas o conectadas a ellas como barras de sonido para los dispositivos conectados. El modo de barra de sonido dinámica (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 está dirigida 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 enumeran en esta sección.
Requisitos del dispositivo
Para admitir DSM, el dispositivo STB o OTT debe 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 poder reproducir sonido en bocinas integradas o conectadas.
- Cuando el dispositivo no es una fuente activa, todos los medios deben pausarse en el dispositivo, 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 mientras diseñan la IU del sistema:
- La etiqueta de la IU debe incluir una referencia a ARC o 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 como se espera si se conecta otra barra de sonido o receptor de audio y video (AVR) en la red HDMI.
- La IU debe informar al usuario que la pantalla puede parpadear cuando se activa o desactiva 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 la 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 el parámetro de 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 el parámetro de configuración de la barra de sonido, el framework desasigna la dirección lógica.
Según la entrada del usuario en la IU del sistema, HdmiControlManager
establece 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 el parámetro de configuración 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 del parámetro de configuración si el dispositivo está conectado en caliente.
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 e implementar la IU del sistema para proporcionar la interfaz requerida para las entradas del usuario.
Implementación del dispositivo
Para admitir la función de barra de sonido en un dispositivo, haz lo siguiente:
- Activa el dispositivo de reproducción en Android 14.
- Implementa el puerto HDMI ARC en el controlador.
Deja los valores RRO de
config_cecSoundbarModeEnabled_defaultyconfig_cecSoundbarModeDisabled_defaultsin cambios enconfig.xmlpara 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_supportentruepara indicar que se admite ARC.Expón el parámetro de configuración para activar o desactivar el modo de barra de sonido en la IU del sistema.
Para la depuración, usa el siguiente comando
adbpara activar o desactivar la función de barra de sonido (1para activar y0para 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 y recomendado para activar y desactivar DSM. El parámetro de configuración Salida de audio se encuentra en el menú Pantalla y sonido, como se muestra en la figura 1:
Figura 1: Parámetro de configuración de salida de audio en el menú Pantalla y sonido
Para que DSM funcione, el parámetro de configuración Habilitar HDMI-CEC debe estar activado. El parámetro de configuración ARC solo se puede habilitar si HDMI-CEC está habilitado. 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 de la casa, el parámetro de configuración ARC se inhabilita. 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 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 Salida de audio para activar y desactivar DSM. Para activar DSM, el usuario sigue el flujo de IU de la figura 3. En el siguiente flujo de IU, para habilitar el modo de barra de sonido, el usuario selecciona Bocina de la casa y, luego, selecciona y confirma el parámetro de configuración 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 manualmente el comportamiento esperado:
- El parámetro de configuración ARC está habilitado:
- La TV se silencia.
- El sonido de la TV se enruta 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 comienza a reproducir audio.
- El parámetro de configuración ARC está habilitado y el dispositivo está conectado a un puerto que no es 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 usa la dirección lógica 5 antes de que se conecte el dispositivo:
- El dispositivo se comporta como un dispositivo de reproducción puro, no como una barra de sonido.
- El parámetro de configuración ARC está habilitado, el dispositivo usa la dirección lógica 5 y otro sistema de audio está 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 usa 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.
- El parámetro de configuración ARC está habilitado y el dispositivo está conectado en caliente:
- El dispositivo sigue el comportamiento normal como cuando el parámetro de configuración está habilitado.
Validación de CTS
CtsHdmiCecHostTestCases
se requiere que pase cuando el parámetro de configuración de la barra de sonido está inhabilitado. La HdmiCecSoundbarModeTest.java
prueba en el paquete de pruebas CtsHdmiCecHostTestCases prueba las funcionalidades de DSM.
Aunque no es un requisito de certificación, ejecuta CtsHdmiCecHostTestCases con el parámetro de configuración de la barra de sonido habilitado 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.