Android 14 fournit des API pour les développeurs que les applications peuvent utiliser pour interroger et configurer les attributs de mélangeur recommandés pour l'USB la lecture audio. Ces attributs préférés pour le mélangeur améliorer l'expérience de lecture audio USB en permettant aux applications de définir le format audio, le masque de canal, le taux d'échantillonnage et le comportement du mélangeur. En utilisant de mixage sur les appareils USB compatibles, pour une lecture audio avec une latence plus faible et des contenus audio de meilleure résolution.
Cette fonctionnalité est également compatible avec le mélangeur de lecture facultatif pour les périphériques USB. Le mode bit-perfection permet de lire le contenu maître qualité authentifiée (MQA) et des formats numériques DSD (Direct Stream Digital) les convertisseurs numériques-analogiques (DAC) compatibles.
interface
Le gestionnaire de règles audio gère les attributs du mélangeur dans le framework. La
AudioMixerAttributes
représente les attributs du mélangeur. La classe AudioMixerAttributes
inclut un élément
AudioFormat
objet qui décrit le format de données audio, le masque de canal et le taux d'échantillonnage pour
le mélangeur. Par défaut, le framework détermine le comportement du mélangeur, qui combine
toutes les sources audio, et applique des commandes de volume ainsi que des effets.
Si le mélangeur utilise le mode BIT_PERFECT
, le système envoie l'audio
contenus sans modification via le framework audio, HAL et éventuellement
de l'API au périphérique USB. La
Le mode BIT_PERFECT
est compatible avec les formats encodés, tels que MQA ou DSD, sur lesquels
la mise à l'échelle ou le mélange
de volume peuvent détruire la signification des données.
Lorsque les applications configurent les attributs Mixer, le framework rouvre le flux de sortie. avec de nouveaux attributs, si nécessaire. La figure suivante montre l'interface entre l'application, le framework et le HAL lorsque les attributs Mixer sont définis:
Figure 1 : Interface entre l'application, le framework et HAL.
Implémentation
Implémentation d'attributs Mixer préférés, autres que BIT_PERFECT
, pour l'audio USB est obligatoire sur Android 14.
Attributs préférés pour le mélangeur
Pour utiliser les attributs préférés du mélangeur, les fournisseurs doivent accepter le routage d'appareils USB au port de mix dynamique, comme suit:
Définissez le port de mix dynamique dans
usb_audio_policy_configuration.xml
.Déclarez la possibilité d'acheminer des appareils USB vers des ports de mix dynamique dans Configuration des règles audio ou dans les méthodes AIDL
getAudioPorts
etgetAudioRoutes
.
Pour en savoir plus sur l'implémentation de référence pour le HAL USB audio, consultez la section hardware/libhardware/modules/usbaudio
.
Consultez un exemple de port de mix dynamique dans frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml
.
Attribut de lecture au niveau du bit parfait
L'attribut de lecture bit-perfect est facultatif et n'est pris en charge que dans AIDL
l'implémentation de l'HAL audio. Pour permettre une lecture de type bit-parfaite, les fournisseurs doivent
ajoutez l'indicateur de sortie (bit-parfait) AUDIO_OUTPUT_FLAG_BIT_PERFECT
au fichier dynamique
port de mix qui peut être
acheminé vers le périphérique USB.
L'exemple de code suivant montre l'utilisation de AUDIO_OUTPUT_FLAG_BIT_PERFECT
dans 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 l'attribut de lecture du bit-perfect est spécifié, le HAL doit s'assurer que le paramètre le flux audio est envoyé au périphérique USB sans aucune modification, c'est-à-dire que le flux audio ne doit pas comporter de mise à l'échelle du volume, de conversion du taux d'échantillonnage ni et ne doivent pas être mélangés dans la DSP. Dans ce cas, le matériel contrôle le volume, car le framework ne fournit pas n'importe quel contrôle de volume logiciel.
Validation
Exécuter les tests CTS dans
PreferredMixerAttributesTestActivity.java
pour valider la prise en charge des attributs de mélangeur préférés pour les périphériques USB.
Pour valider l'implémentation de l'attribut BIT_PERFECT
, utilisez des DAC USB qui
sont compatibles avec les formats audio MQA et DSD sur modulation par impulsion et codage (PCM).