Le service audio pour voiture utilise la règle Core Audio pour faciliter l'utilisation dans les voitures.
Lecture audio séparée pour chaque passager (audio multizone) dans lesquelles chaque zone permet la lecture simultanée de son.
Configuration de zone audio dynamique.
Diffusion audio de la zone principale du passager.
Miroir audio du passager.
Dans chaque cas d'utilisation, le service audio pour voiture utilise la règle audio dynamique pour acheminer automatiquement l'audio vers le périphérique de sortie désigné.
Audio multizone
L'audio multizone permet à plusieurs utilisateurs d'interagir simultanément avec AAOS. A ensemble de périphériques de sortie est associé à une zone, et chaque zone conserve le son de la mise au point et du volume. Les passagers peuvent écouter leur son pendant que le conducteur écoute une autre source dans la zone principale (généralement, l'habitacle principal).
Architecture audio multizone
Figure 1 : Architecture d'un service audio pour voiture.
Les zones audio pour voiture sont une abstraction des sorties audio, de la priorité audio paramètres audio, qui peuvent tous être gérés indépendamment. À des fins de routage, chaque zone est définie comme un ensemble de périphériques de bus de sortie audio disposés dans la configuration des règles audio. Les appareils diffèrent pour chaque définition de zone audio. Sur la figure 1, les dispositifs de bus 1 à 5 appartiennent à la zone zéro, les dispositifs de bus 6 à 5 Les lignes 8 appartiennent à la zone 1, et les appareils de bus 9 à 11 appartiennent à la zone 2.
Configuration du système audio de la voiture
En règle générale, les périphériques de sortie sont affectés à une seule zone audio. Chaque zone audio est
défini dans car_audio_configuration.xml
. L'extrait de code suivant montre une image de voiture
configuration audio de la Figure 1:
<carAudioConfiguration version="3">
<zones>
<zone name="Zone0" audioZneId="0" occupantZoneId="0">
<zoneConfigs>
<zoneConfig name="config0" isDefault="true">
<volumeGoups>
<group>
<device address="bus_1">
<context context="music"/>
</device>
</group>
<group>
<device address="bus_2">
<context context="navigation"/>
</device>
</group>
...
</volumeGroups>
</zoneConfig>
</zoneConfigs>
</zone>
<zone name="Zone1" audioZoneId="1" occupantZoneId="1">
<zoneConfigs>
<zoneConfig name="config0" isDefault="true">
<volumeGroups>
<group>
<device address="bus_6">
<context context="music"/>
</device>
</group>
<group>
<device address="bus_7">
<context context="navigation"/>
</device>
</group>
...
</volumeGroups>
</zoneConfig>
</zoneConfigs>
</zone>
...
...
</zones>
</carAudioConfiguration>
occupantZoneId
est une définition de service automobile gérée par
CarOccupantZoneManager
Il est utilisé dans les voitures pour définir
un mappage pour un utilisateur dans
la voiture à un siège spécifique. CarOccupantZoneService
définit également
la mise en correspondance de la zone de l'occupant avec les écrans, les autres périphériques et l'utilisateur une fois que
se connecte à un écran. Une zone audio comporte:
Un ID de zone audio et un ID de zone de l'occupant.
- Mappe la zone audio en fonction de la zone de l'occupant (siège, écrans et autres périphériques)
- Mapper l'ID utilisateur attribué à une zone audio lors de la connexion
Liste des configurations audio. Chaque configuration audio dispose d'un ensemble de des groupes de volumes. Chaque groupe de volumes est associé à un ensemble de périphériques de bus audio.
Lorsque le volume est modifié, tous les appareils audio d'un groupe sont contrôlés dans de la même manière.
Chaque appareil audio se voit attribuer une liste d'attributs audio. Ce sont utilisées pour créer les mixages de la règle audio les attributs audio attribués.
Cette configuration permet d'acheminer différentes utilisations d'attributs audio vers périphériques de sortie différents dans chaque zone. Selon le cas d'utilisation, différentes plusieurs sons peuvent être émis simultanément. Par exemple, vous pouvez choisir de configurer (zone principale) pour diffuser le son des contenus multimédias sur toutes les enceintes, à l'exception des sons de la navigation uniquement sur les enceintes les plus proches du conducteur. Avec la lecture simultanée de son, le l'habitacle principal continue d'écouter des contenus multimédias pendant que la navigation est transmise au pilote.
Workflow de connexion audio multizone des passagers
Le schéma séquentiel ci-dessous illustre le processus d'activation du routage audio lorsqu'un journal du passager dans son écran respectif:
Figure 2.
Dans cette séquence, la connexion de l'utilisateur est propagée au service audio de la voiture via le service de zone de l'occupant.
Le service audio pour voiture (pour une zone audio spécifique) utilise API
AudioPolicy#removeUserIdDeviceAffinity
pour supprimer l'appareil de l'utilisateur les affinités. Cette API utilise un ID utilisateur. Dans ce cas, utilisateur.L'API
AudioPolicy#setUserIdDeviceAffinity
attribue le nouvel utilisateur zone, qui récupère l'ID utilisateur et tous les appareils d'une zone spécifique configuration.
Configurations de zones dynamiques
Sous Android 14, les configurations de zone dynamique pour permettre aux OEM de configurer différents ensembles d'appareils pour les passagers. Le cas d'utilisation permet aux passagers du siège arrière de passer d'un siège arrière à un autre. le haut-parleur de l'appui-tête et un périphérique pour casque audio situé à l'arrière.
Dans ce cas, deux configurations sont nécessaires. Une pour le siège arrière l'appui-tête et le périphérique pour casque. L'audio d'un utilisateur spécifique est routé seulement à une configuration à la fois.
Figure 3. Workflow de configuration dynamique des zones
La figure 3 illustre l'architecture de configuration des zones dynamiques.
le workflow de ML. La zone audio 1 contient deux configurations : Config 0
et Config 1
.
qui sont associés respectivement
au haut-parleur et à l'appui-tête du périphérique de sortie.
Une fois connecté, la configuration par défaut est automatiquement attribuée à l'utilisateur. Lorsque l'utilisateur choisit de modifier la configuration, généralement via une interface utilisateur système, le service audio de voiture effectue le basculement entre les deux configurations. Dans ce le dispositif de sortie bascule entre le haut-parleur Z1 et l'appui-tête Z1.
L'extrait de code ci-dessous présente la configuration de cette zone dynamique.
<carAudioConfiguration version="3">
<zones>
<zone name="Zone1" audioZoneId="1" occupantZoneId="1">
<zoneConfigs>
<zoneConfig name="Zone 1 Config 0" isDefault="true">
<volumeGroups>
<group>
<device address="bus_100">
<context context="music"/>
***
</device>
</group>
</volumeGroups>
</zoneConfig>
<zoneConfig name="Zone 1 Config 1">
<volumeGroups>
<group>
<device address="bus_101">
<context context="music"/>
***
</device>
</group>
</volumeGroups>
</zoneConfig>
</zoneConfigs>
</zone>
</zones>
Pour faciliter la gestion des configurations audio, le gestionnaire audio de la voiture expose des API permettant de gérer les configurations:
- Interroger les configurations disponibles pour une zone
- Requête actuellement définie pour la configuration d'une zone.
- Passez à une autre configuration.
Une application ou un service d'UI du système peut utiliser ces API pour gérer la configuration du zone audio, comme illustré dans la figure 4. L'API Query expose les deux au passager. L'utilisateur peut sélectionner une configuration différente en appuyant sur une commande pour la configuration souhaitée.
Figure 4. Workflow de configuration dynamique des zones
Diffusion audio diffusée par le passager dans la zone principale
La diffusion audio du passager dans la zone principale est une fonctionnalité introduite dans Android 14 pour permettent aux passagers de caster le contenu audio de leurs contenus multimédias dans la zone principale. Dans ce le son multimédia du passager peut être casté dans la cabine principale pendant le pilote conserve le contrôle total.
La figure ci-dessous montre une version simplifiée de l'architecture pour l'instance principale la diffusion audio du contenu multimédia du passager de la zone.
Figure 5. Workflow de configuration dynamique des zones
L'image montre que le périphérique de sortie multimédia du pilote est partagé avec du passager, cela ne se produit que lorsqu'il est dans la zone principale . La règle audio dynamique permet également de gérer le routage audio mais aucune modification n'est appliquée aux affinités d'appareil pour le pilote. Pour la liste des périphériques de sortie est modifiée comme suit:
- Le périphérique de sortie multimédia du passager a été supprimé de la liste des appareils
- Le périphérique de sortie multimédia pour le pilote a été ajouté à la liste des périphériques
- Les périphériques de sortie restants pour les zones audio du passager restent dans la liste des appareils
Cette nouvelle liste d'appareils est attribuée au passager par
API AudioPolicy#setUserIdDeviceAffinity
. Les paramètres transmis à l'API
la liste des appareils et l'ID utilisateur du passager. Lorsque le système audio
Le service de règles interroge le mix audio à sélectionner pour une piste multimédia.
associé au passager, le mix audio associé à l'audio principal
est sélectionnée.
Une exigence clé pour la diffusion audio de la zone principale est que le contenu multimédia de la zone principale le périphérique de sortie doit être isolé des autres utilisations d'attributs audio. Sinon, pendant la construction du mix audio, d'autres attributs audio sont ajoutés au mix. Lorsque le système audio sélectionne le mixage, tous les sons associés le mix est sélectionné pour être lu dans la cabine principale.
Miroir audio de zone passager
La fonctionnalité de miroir audio permet aux passagers de partager des contenus audio. La fonctionnalité Miroir Duplique les données audio dans chaque zone audio afin que tous les passagers puissent les écouter le même son. Dans ce cas, l'objectif audio est partagé avec les passagers. impliqués dans la duplication audio.
Routage du miroir audio
La duplication audio doit inclure au moins deux passagers. En tant que résultat, une configuration audio avec seulement deux zones audio pour les passagers nécessiterait un périphérique de sortie miroir. D'après la définition ci-dessus, deux mises en miroir simultanées peuvent être lancées.
La figure ci-dessous illustre un schéma simplifié pour la mise en miroir audio multizone.
entre deux passagers. L'audio des deux passagers est acheminé vers un miroir audio
appareil : bus_1000
. La HAL audio duplique le signal vers les zones sources.
Figure 6. Workflow de configuration dynamique des zones
Cet itinéraire est activé uniquement lorsque les passagers sont en mode duplication d'écran. Si
les appareils correspondants à la zone audio sont attribués aux passagers.
Lorsque la duplication d'écran est activée pour la première fois pour un passager,
L'API AudioPolicy#setUserIdDeviceAffinity
modifie le routage:
- Le périphérique de sortie multimédia du passager est supprimé de la liste des appareils.
- Dupliquez le périphérique de sortie ajouté à la liste des appareils.
- Les périphériques de sortie restants pour la zone audio du passager restent sur la liste des appareils.
Avec la liste des appareils, l'API est appelée avec la liste mise à jour des appareils. l'identifiant utilisateur du passager. L'image suivante présente un diagramme séquentiel des de la mise en miroir audio.
Figure 7. Workflow de la duplication audio
Dans la figure 7, les API du gestionnaire audio de la voiture permettant de gérer la duplication audio sont
appelé à partir du
service de système multimédia. Plus précisément, l'API qui active l'audio
mise en miroir pour les utilisateurs 1 et 2, CarAudioManager#enableMirrorForAudioZones
.
Le service audio de la voiture configure le routage audio pour les passagers en tant que décrites ci-dessus. Le service audio du véhicule envoie également un signal au HAL audio pour configurer et dupliquer le contenu audio de l'appareil miroir zones.
Dans l'image ci-dessus, le service
audio de la voiture envoie
mirroring_src=bus_1000;mirroring_dest=bus_10,bus_20
où,
bus_1000
est le bus source, et bus_10
et bus_20
sont la destination.
en bus.
Le schéma de séquence ne montre pas le signal envoyé via
L'API AudioManager#setParameters
, qui atteint le HAL via l'audio
Google Cloud.
Lors de la désactivation du miroir audio, le signal suivant est envoyé :
mirroring_src=bus_1000;mirroring=off
Ce signal peut être utilisé
par le HAL pour
désactiver la duplication audio lorsque la duplication audio n'est pas activée. Pour définir des pistes audio
dupliquer des appareils, le fichier de configuration
audio de la voiture contient une section appelée
mirroringDevices
, comme indiqué dans l'extrait ci-dessous.
Dans cet extrait, deux appareils de mise en miroir sont définis, bus_1000
et bus_2000
,
afin que quatre passagers puissent utiliser la duplication audio.
<carAudioConfiguration version="3">
<mirroringDevices>
<mirroringDevice address="bus_1000"/>
<mirroringDevice address="bus_2000"/>
</mirroringDevices>
<zones>
....
</zones>
</carAudioConfiguration>