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:
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:
Define el puerto de combinación dinámica en
usb_audio_policy_configuration.xml
.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
ygetAudioRoutes
.
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).