Atributos preferidos del mezclador en dispositivos USB

Android 14 ofrece APIs de desarrollador. que las apps pueden usar para consultar y configurar los atributos preferidos del mezclador para USB reproducción de audio. Estos atributos preferidos del mezclador mejorar la experiencia de reproducción de audio USB permitiendo que las apps configuren el formato de audio, máscara de canal, tasa de muestreo y comportamiento del mezclador. Si se usa la opción preferida mezcladores en dispositivos USB compatibles, los usuarios pueden reproducir audio de baja latencia y contenido de audio de mayor resolución.

Esta función también admite el mezclador de reproducción de bits perfecto opcional. para dispositivos USB. El modo de bits perfecto permite la reproducción de contenido principal los formatos autenticados de calidad (MQA) y digitales de transmisión directa (DSD) en conversores digitales a analógicos (DAC) compatibles.

Interfaz

El Administrador de políticas de audio maneja los atributos del mezclador en el marco. El AudioMixerAttributes clase representa los atributos del mezclador. La clase AudioMixerAttributes incluye un AudioFormat que describe el formato de datos de audio, la máscara de canal y la tasa de muestreo de en la mezcladora. De forma predeterminada, el framework determina el comportamiento del mezclador, que combina todas las fuentes de audio y aplica el control de volumen y los efectos.

Si el comportamiento del mezclador usa el modo BIT_PERFECT, el sistema envía el audio. contenido sin realizar modificaciones a través del framework de audio, la HAL y, opcionalmente, un procesador de señales digitales (DSP), desde la API hasta el dispositivo USB. El El modo BIT_PERFECT admite formatos codificados, como MQA o DSD, en los que cualquier el escalamiento de volumen o la combinación pueden destruir el significado de los datos.

Cuando las apps configuran atributos del mezclador, el framework reabre la transmisión de salida con atributos nuevos, si es necesario. En la siguiente figura, se muestra la interfaz entre la app, el framework y la HAL cuando se establecen los atributos del mezclador:

Atraedor-de-mezcla-preferido

Figura 1: Interfaz entre la app, el framework y la HAL.

Implementación

Implementación de atributos preferidos del mezclador, distintos de BIT_PERFECT , para el audio USB es obligatorio en Android 14.

Atributos preferidos del mezclador

Para admitir los atributos preferidos del mezclador, los proveedores deben admitir el enrutamiento de dispositivos USB. al puerto de combinación dinámica de la siguiente manera:

  1. Define el puerto de combinación dinámica en usb_audio_policy_configuration.xml.

  2. Declara la capacidad de enrutar dispositivos USB a puertos de combinación dinámica en configuración de la política de audio o en los métodos del AIDL getAudioPorts y getAudioRoutes.

Consulta la implementación de referencia de la HAL de audio USB en hardware/libhardware/modules/usbaudio. Consulta un ejemplo de un puerto de combinación dinámica en frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml.

Atributo de reproducción de bits perfectos

El atributo de reproducción de bits perfecto es opcional y solo se admite en el AIDL de la HAL de audio. Para permitir una reproducción perfecta en bits, los proveedores deben agrega la marca de resultado de bits perfecto AUDIO_OUTPUT_FLAG_BIT_PERFECT al archivo puerto de combinación que se puede enrutar al dispositivo USB.

En la siguiente muestra de código, se muestra el uso de AUDIO_OUTPUT_FLAG_BIT_PERFECT marca en usb_audio_policy_configuration.xml:

<module name="usb" halVersion="2.0">
    <mixPorts>
        <mixPort name="hifi_output"
                 role="source" flags="AUDIO_OUTPUT_FLAG_BIT_PERFECT">
        </mixPort>
    </mixPorts>
    <devicePorts>
        <devicePort tagName="USB Device Out"
                    type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
        </devicePort>
    </devicePorts>
    <routes>
        <route type="mix" sink="USB Device Out"
               sources="hifi_output"/>
    </routes>
</module>

Si se especifica el atributo de reproducción de bits perfecto, la HAL debe asegurarse de que de audio se envía al dispositivo USB sin ninguna modificación, es decir, el La reproducción de audio no debe tener escalamiento de volumen, conversión de tasa de muestreo ni audio de procesamiento y no se deben mezclar en la DSP. En este caso, el hardware controla el volumen, ya que el framework no proporciona cualquier control de volumen por software.

Validación

Ejecuta las pruebas del CTS en PreferredMixerAttributesTestActivity.java para validar la compatibilidad con los atributos preferidos del mezclador para dispositivos USB.

Para validar la implementación del atributo BIT_PERFECT, usa DAC USB que son compatibles con los formatos de audio MQA y DSD en vez de modulación por pulso por código (PCM).