Modo de barra de sonido dinámica

Con la compatibilidad con el marco Android 14, los decodificadores (STB) y los dispositivos over-the-top (OTT) con parlantes integrados o conectados se pueden configurar para que sean barras de sonido para dispositivos conectados. El modo de barra de sonido dinámica (DSM) en Android 14 admite los atributos de control de electrónica de consumo (CEC) HDMI para barras de sonido, como el canal de retorno de audio (ARC) y el control de audio del sistema.

Esta función está dirigida únicamente a dispositivos de reproducción Android TV CEC.

Requisitos

Para adoptar la función de barra de sonido, los OEM deben cumplir con los requisitos de interfaz de usuario del sistema y del dispositivo que se enumeran en esta sección.

Requisitos del dispositivo

Para admitir DSM, el dispositivo STB/OTT debe cumplir los siguientes requisitos:

  • El dispositivo debe ejecutar Android 14.
  • Cuando DSM está habilitado, el dispositivo debe comportarse como una barra de sonido siguiendo las especificaciones HDMI CEC, como ARC.
  • El dispositivo debe ser capaz de reproducir sonido en altavoces integrados o conectados.
  • Cuando el dispositivo no es una fuente activa, todos los medios deben estar en pausa en el dispositivo, lo que limita su consumo de energía.

Requisitos de la interfaz de usuario del sistema

Para admitir DSM, los OEM deben cumplir los siguientes requisitos al diseñar la interfaz de usuario del sistema:

  • La etiqueta de la interfaz de usuario debe incluir una referencia a ARC o Audio Return Channel (ARC) .
  • La interfaz de usuario debe informar al usuario que conecte el dispositivo al puerto ARC del televisor para establecer la conexión ARC.
  • La interfaz de usuario debe informar al usuario que es posible que la función no funcione como se esperaba si otra barra de sonido o receptor de audio/vídeo (AVR) está conectado a la red HDMI.
  • La interfaz de usuario debe informar al usuario que la pantalla puede parpadear al alternar la configuración.
  • Si el dispositivo no tiene altavoces integrados, DSM debe estar desactivado de forma predeterminada.

Mejores prácticas: recomendamos utilizar el menú Pantalla y sonido como ubicación para la configuración del usuario para habilitar o deshabilitar ARC , como se muestra en Implementación de SysUI .

Implementación del marco

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 existe en el marco de Android. El marco asigna la dirección lógica cuando la configuración de la barra de sonido está habilitada, para que el dispositivo se convierta en una barra de sonido dinámicamente. Cuando la configuración de la barra de sonido está deshabilitada, el marco desasigna la dirección lógica.

Según la entrada del usuario en la interfaz de usuario 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 está establecido en SOUNDBAR_MODE_DISABLED .

HdmiControlService escucha el cambio en la configuración CEC_SETTING_NAME_SOUNDBAR_MODE para hacer lo siguiente:

  • Valide 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 eliminar el dispositivo de audio local.
  • Asegúrese de que se conserve el estado de la configuración, si el dispositivo está conectado en caliente.

Consulte el siguiente ejemplo de declaraciones para configurar 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.
     *
     * <p>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.
     *
     * <p>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 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 e implementar la interfaz de usuario 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:

  1. Abra el dispositivo de reproducción en Android 14.
  2. Implemente el puerto HDMI ARC en el controlador.
  3. Deje los valores de RRO de config_cecSoundbarModeEnabled_default y config_cecSoundbarModeDisabled_default sin cambios en config.xml para que la función permanezca deshabilitada de forma predeterminada.

  4. Asegúrese de que el dispositivo tenga altavoces integrados o conectados para reproducir el audio y edite la configuración de la política de audio .

  5. Establezca la propiedad del sistema persist.sys.hdmi.property_arc_support en true para indicar que se admite ARC.

  6. Exponga la configuración para alternar el modo de barra de sonido en la interfaz de usuario del sistema .

Para la depuración, utilice el siguiente comando adb para activar o desactivar la función de la barra de sonido ( 1 para activado y 0 para desactivado):

adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>

Implementación de SysUI

Esta sección describe un flujo de interfaz de usuario simulado recomendado para activar y desactivar DSM. La configuración de salida de audio se encuentra en el menú Pantalla y sonido , como se muestra en la figura 1:

dsm_audio_output

Figura 1. Configuración de salida de audio en el menú Pantalla y sonido .

Para que DSM funcione, la configuración Habilitar HDMI-CEC debe estar activada. La configuración ARC solo se puede habilitar si HDMI-CEC está habilitado. La configuración ARC aparece atenuada y deshabilitada si HDMI-CEC está deshabilitado como se muestra en la figura 2. En el siguiente flujo de interfaz de usuario, cuando el usuario desactiva la configuración Habilitar HDMI-CEC en el menú Pantalla y sonido y selecciona Altavoz doméstico , la configuración ARC La configuración está deshabilitada. El usuario puede habilitar la configuración Reproducir audio de televisión habilitando Habilitar HDMI-CEC .

dsm_ui_disable_arc

Figura 2. UI para la opción ARC deshabilitada.

Cuando la configuración HDMI-CEC está habilitada, el usuario puede usar la configuración ARC en Salida de audio para activar y desactivar DSM. Para activar DSM, el usuario sigue el flujo de la interfaz de usuario en la figura 3. En el siguiente flujo de la interfaz de usuario, para habilitar el modo de barra de sonido, el usuario selecciona Home Speaker y selecciona y confirma la configuración ARC . Para desactivar DSM, el usuario desactiva la configuración ARC .

dsm_ui_enable_arc

Figura 3. UI para habilitar DSM.

Validación

Los OEM pueden realizar una prueba de audio para garantizar que los parlantes del dispositivo de reproducción reproduzcan el sonido proveniente del televisor o de otros dispositivos conectados al panel del televisor.

Validación manual

Utilice los siguientes escenarios para validar manualmente el comportamiento esperado:

  • La configuración ARC está habilitada:
    • El televisor se silencia solo.
    • El sonido del televisor se dirige a los altavoces del dispositivo.
  • La configuración ARC está deshabilitada:
    • El televisor deja de enrutar el audio al dispositivo.
    • El televisor comienza a reproducir audio.
  • La configuración ARC está habilitada y el dispositivo está conectado a un puerto que no es ARC del televisor:
    • El dispositivo no reproduce el sonido del televisor.
  • La configuración ARC está habilitada 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.
  • La configuración ARC está habilitada, la dirección lógica 5 está en uso por el dispositivo y hay otro sistema de audio conectado en la red:
    • No hay cambios en el comportamiento de la barra de sonido del dispositivo.
  • La configuración ARC está habilitada, 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 el televisor para el segundo sistema de audio porque utiliza una dirección lógica no registrada.
  • La configuración ARC está habilitada y el dispositivo se conecta en caliente:
    • El dispositivo sigue un comportamiento normal como cuando la configuración está habilitada.

validación CTS

Se requiere que CtsHdmiCecHostTestCases pase cuando la configuración de la barra de sonido está deshabilitada. La prueba HdmiCecSoundbarModeTest.java en el conjunto de pruebas CtsHdmiCecHostTestCases prueba las funcionalidades de DSM.

Aunque no es un requisito de certificación, ejecute CtsHdmiCecHostTestCases con la configuración de la barra de sonido habilitada para validar su implementación.

Consulte Pruebas CEC CTS para dispositivos Android TV para ejecutar las pruebas Android CTS para HDMI CEC.