Gracias a la compatibilidad con el framework de Android 14, los OEM pueden configurar 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á disponible en dispositivos de reproducción CEC de Android TV.
Requisitos
Para adoptar la función de barra de sonido, los OEM 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 el DSM, el dispositivo OTT o STB debe cumplir con los siguientes requisitos:
- El dispositivo debe ejecutar Android 14.
- Cuando el 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, se debe pausar todo el contenido multimedia en el dispositivo, lo que limita su consumo de energía.
Requisitos de la IU del sistema
Para admitir el DSM, los OEM 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 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) a la red HDMI.
- La IU debe informar al usuario que la pantalla podría parpadear cuando se active o desactive el parámetro de configuración.
- Si el dispositivo no tiene bocinas integradas, el 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 libera 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
detecta 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 se conecta 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 OEM deben asegurarse de que el hardware la admita. Los OEM deben configurar el dispositivo y 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:
- Aparece el dispositivo de reproducción en Android 14.
- Implementa el puerto HDMI ARC en el controlador.
Deja los valores del RRO de
config_cecSoundbarModeEnabled_default
yconfig_cecSoundbarModeDisabled_default
sin cambios enconfig.xml
para que la función permanezca inhabilitada de forma predeterminada.Asegúrate de que el dispositivo tenga parlantes integrados o conectados 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 ARC es compatible.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 de
adb
para activar o desactivar la función de la 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 y recomendado para activar y desactivar el 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 funcione el DSM, 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 se inhabilita 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 para la casa, se inhabilita el parámetro de configuración ARC. El usuario puede habilitar el parámetro de configuración Reproducir audio de la TV habilitando 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 Salida de audio para activar y desactivar el DSM. Para activar el DSM, el usuario debe seguir el flujo de la IU que se muestra en la figura 3. En el siguiente flujo de la IU, para habilitar el modo de barra de sonido, el usuario selecciona Bocina para la casa y, luego, selecciona y confirma el parámetro de configuración ARC. Para desactivar el DSM, el usuario debe desactivar el parámetro de configuración de ARC.
Figura 3: Es la IU para habilitar DSM.
Validación
Los OEM pueden realizar una prueba de audio para asegurarse de que las bocinas del dispositivo de reproducción emitan 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 enruta a las bocinas del dispositivo.
- El parámetro de configuración ARC está inhabilitado:
- La TV dejará 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 no ARC de la TV:
- El dispositivo no reproduce el sonido de la TV.
- El parámetro de configuración de ARC está habilitado y la dirección lógica 5 está en uso por otro dispositivo 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 de 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, la dirección lógica 5 está en uso por el dispositivo conectado a un puerto que no es ARC 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 de ARC está habilitado y el dispositivo se conecta en caliente:
- El dispositivo se comporta de forma normal, como cuando el parámetro de configuración está habilitado.
Validación de CTS
CtsHdmiCecHostTestCases
se debe pasar cuando el parámetro de configuración de la barra de sonido está inhabilitado. La prueba HdmiCecSoundbarModeTest.java
de la suite de pruebas CtsHdmiCecHostTestCases
prueba las funcionalidades del 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.