Modo de barra de sonido dinámica

Gracias a la compatibilidad con el framework de Android 14, los dispositivos decodificadores (STB) y de transmisión libre (OTT) con bocinas integradas o conectadas a ellas pueden configurarse como barras de sonido para los dispositivos conectados. El modo de barra de sonido dinámica (DSM) en Android 14 admite usuarios de HDMI. Atributos de control electrónico (CEC) para barras de sonido, como el canal de retorno de audio (ARC) y el control de audio del sistema.

Esta función se orienta solo a 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 de la IU del sistema y del dispositivo. requisitos que se indican en esta sección.

Requisitos del dispositivo

Para admitir el DSM, el dispositivo STB/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 siguiendo el Especificaciones de HDMI CEC, como ARC.
  • El dispositivo debe ser capaz de reproducir sonido en el sistema y bocinas.
  • Si el dispositivo no es una fuente activa, todo el contenido multimedia debe estar pausado en la dispositivo, lo que limita su consumo de energía.

Requisitos de la IU del sistema

Para admitir DSM, los OEM deben cumplir los siguientes requisitos cuando diseñen la IU del sistema:

  • La etiqueta de la IU debe incluir una referencia a ARC. Canal de retorno de audio (ARC):
  • La IU debe informar al usuario que debe conectar el dispositivo al puerto ARC de la TV para establecer la conexión de ARC.
  • La IU debe informar al usuario que la función podría no funcionar como se espera si otra barra de sonido o receptor de audio/video (AVR) está conectado en el HDMI. en cada red.
  • La IU debe informar al usuario que la pantalla podría parpadear cuando active o desactive la del lugar.
  • Si el dispositivo no tiene bocinas integradas, DSM debe estar inhabilitado de forma predeterminada.

Práctica recomendada: Sugerimos usar las APIs de Display & Menú Sonido como ubicación en la configuración del usuario para habilitar o inhabilitar ARC, como se muestra en 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 en el framework de Android. El framework asigna la dirección lógica cuando la configuración de la barra de sonido está habilitada, para que el dispositivo convertirse en una barra de sonido dinámicamente. Cuando la configuración de la barra de sonido está inhabilitada, 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 estableció en SOUNDBAR_MODE_DISABLED.

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

  • Valida si existe un dispositivo de reproducción local y si la propiedad ARC es no es compatible.
  • 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 está conectado en caliente.

Consulta la siguiente muestra de declaraciones para establecer y obtener el estado de la modo 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 en OEM

Para admitir la función de barra de sonido dinámica, los OEM deben asegurarse de que el hardware lo respaldan. Los OEM deben configurar el dispositivo y implementar la IU del sistema para proporcionar la interfaz requerida para las entradas del usuario.

Implementación en dispositivos

Para admitir la función de barra de sonido en un dispositivo, haz lo siguiente:

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

  4. Asegúrate de que el dispositivo tenga bocinas conectadas para reproducir el audio y editar configuración de la política de audio.

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

  6. Expón la configuración para activar o desactivar el modo de la barra de sonido en la IU del sistema.

Para la depuración, usa el siguiente comando adb a fin de activar la función de barra de sonido o desactivado (1 para activar y 0 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 recomendado y simulado para activar y desactivar DSM. El parámetro de configuración Salida de audio se encuentra en Pantalla y Sonido, como se muestra de la figura 1:

salida_de_audio_dsm

Figura 1: salida de audio en Pantalla & Menú Sonido

Para que DSM funcione, la opción Enable HDMI-CEC debe estar activada. El La configuración de ARC solo se puede habilitar si HDMI-CEC está habilitado. El parámetro de configuración ARC estará inhabilitado e inhabilitado si HDMI-CEC está inhabilitado como se muestra en la figura 2. En la siguiente flujo de la IU, cuando el usuario desactive la opción Enable HDMI-CEC en la página Sonido y selecciona Bocina de la casa, el parámetro de configuración ARC está inhabilitada. El usuario puede habilitar el parámetro de configuración Reproducir el audio de la televisión. Para ello, debe hacer lo siguiente: habilitando Habilitar HDMI-CEC.

dsm_ui_disable_arco

Figura 2: IU de la opción de ARC inhabilitada.

Cuando el parámetro de configuración HDMI-CEC está habilitado, el usuario puede utilizar el parámetro ARC en Salida de audio para activar y desactivar DSM. Para activar DSM, el usuario sigue la IU en 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 selecciona y confirma el parámetro de configuración ARC. Para activar si desactiva DSM, el usuario desactiva el parámetro de configuración ARC.

dsm_ui_enable_arc

Figura 3: IU para habilitar DSM.

Validación

Los OEM pueden realizar una prueba de audio para asegurarse de que las bocinas Reproducir sonido de la TV o de otros dispositivos conectados a ella panel.

Validación manual

Usa las siguientes situaciones para validar de forma manual el comportamiento esperado:

  • Si se habilita el parámetro de configuración ARC:
    • La TV se silencia automáticamente.
    • 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.
  • Se habilitó el parámetro de configuración ARC y se conectó el dispositivo a una red que no es de ARC puerto a la TV:
    • El dispositivo no reproduce el sonido de la TV.
  • El parámetro de configuración ARC está habilitado, y otro usuario está usando la dirección lógica 5. el dispositivo antes de conectarlo:
    • 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 está usando la dirección lógica 5 y Hay otro sistema de audio conectado a la red:
    • No se produce ningún cambio en el comportamiento de la barra de sonido del dispositivo.
  • El parámetro de configuración ARC está habilitado y el dispositivo está usando la dirección lógica 5. conectado a un puerto que no es ARC y hay otro sistema de audio conectado al Puerto ARC:
    • No se estableció la conexión de ARC con la TV para el segundo audio sistema porque usa una dirección lógica no registrada.
  • Si se habilita el parámetro de configuración ARC y el dispositivo está conectado en caliente:
    • El dispositivo sigue un comportamiento normal como cuando este parámetro está habilitado.

Validación de CTS

CtsHdmiCecHostTestCases se debe pasar cuando la configuración de la barra de sonido está inhabilitada. La HdmiCecSoundbarModeTest.java en el paquete de pruebas de CtsHdmiCecHostTestCases, prueba las funciones de DSM.

Aunque no es un requisito de certificación, ejecuta CtsHdmiCecHostTestCases con el de la barra de sonido habilitada para validar tu implementación.

Consulta Pruebas del CTS del CEC para dispositivos Android TV. para ejecutar las pruebas del CTS de Android para HDMI CEC.