Routage audio multizone

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

Architecture d'un service audio pour voiture

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:

image

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.

  1. 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.

  2. 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.

Configuration de la zone dynamique
flux de travail

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.

Configuration de la zone dynamique
flux de travail

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.

Configuration de la zone dynamique
flux de travail

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.

Configuration de la zone dynamique
flux de travail

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.

Workflow de la duplication 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>