Options de configuration audio AAOS

Android Automotive OS (AAOS) utilise des indicateurs et des configurations pour activer différentes fonctionnalités, en commençant par le routage dynamique et en passant par des indicateurs de fonctionnalité plus génériques, tels que le contrôle du volume à partir du service automobile. Les indicateurs de configuration AAOS actuels pour la gestion audio sont décrits ici.

Signaler Objectif
audioUseDynamicRouting Défini dans le fichier de configuration du service automobile pour activer le routage AAOS. La configuration doit être définie sur true. Lorsque false, le routage et une grande partie de CarAudioService sont désactivés, l'OS revient au comportement par défaut décrit dans Configurer des règles audio.
useCoreAudioRouting Défini dans le fichier de configuration du service automobile pour activer la gestion du routage audio principal AAOS. Lorsque la valeur est définie sur true, le service audio de la voiture utilise les définitions de configuration définies avec le moteur de règles audio configurable. Si la valeur est définie sur false, la gestion du routage revient à utiliser la définition du mix de règles audio dynamiques du service audio de la voiture, telle qu'elle est configurée à l'aide de audioUseDynamicRouting.
useCoreAudioVolume Défini dans le fichier de configuration du service automobile pour activer la gestion du volume audio principal d'AAOS. Lorsque la valeur est définie sur true, le service audio de la voiture utilise les définitions de groupes de volume configurées avec le moteur de règles audio configurable. Si la valeur est définie sur false, la gestion du volume revient à utiliser la définition du groupe de volume par défaut du service audio de la voiture, telle qu'elle est configurée à l'aide de audioUseDynamicRouting.
audioUseCarVolumeGroupMuting Défini dans le fichier de configuration du service automobile pour permettre la désactivation du son de groupes de volume individuels. Lorsque la valeur est définie sur false (valeur par défaut), la désactivation du son des groupes de volume individuels est désactivée. Au lieu de cela, la désactivation du son active ou désactive le son principal. Lorsque cette option est définie sur true, la désactivation du son du groupe de volume de la voiture est activée et chaque groupe de volume individuel peut être désactivé séparément. Lorsque true, la désactivation du son du groupe de volumes doit être implémentée au niveau de la HAL de contrôle audio.
audioUseHalDuckingSignals Défini dans le fichier de configuration du service automobile pour permettre à l'API IAudioControl#onDevicesToDuckChange d'informer HAL du moment où le son doit être baissé. Lorsque la valeur est true (valeur par défaut), l'API reçoit des signaux indiquant les périphériques de sortie à baisser et les utilisations à privilégier. Lorsque false, l'API n'est pas appelée. L'API n'est appelée que si la HAL de contrôle audio implémente l'atténuation.
config_oemCarService Défini dans le fichier de configuration du service automobile, il s'agit du nom du composant pour le service de personnalisation OEM. Les OEM peuvent choisir d'implémenter ce service pour personnaliser les actions de service automobile pour différentes règles. Si les OEM choisissent d'implémenter ce composant, ils doivent implémenter un service pour étendre OemCarService exposé par car-lib, puis implémenter les services de composants requis. Pour le service audio automobile en particulier, les OEM peuvent implémenter l'un des sous-services audio pour gérer l'action audio. Pour en savoir plus, consultez Service de plug-in audio pour voiture. Si le nom du composant n'est pas valide, CarService ne se connecte à aucun service OEM. Le nom du composant ne peut pas être un package tiers. Il doit être préinstallé.
audioVolumeAdjustmentContextsVersion

Défini dans le fichier de configuration du service automobile, configuration permettant de sélectionner la version de la liste de priorité du contexte d'ajustement du volume.

La version 1 inclut tous les contextes audio, dans l'ordre suivant :

  • NAVIGATION
  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
  • CALL_RING
  • SYSTEM_SOUND
  • SAFETY
  • ALARM
  • NOTIFICATION
  • VEHICLE_STATUSEMERGENCY

La version 2 est limitée aux contextes suivants, dans cet ordre.

La version par défaut est 1.

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Défini dans le fichier de configuration du service automobile, configuration permettant de conserver l'état de désactivation du son global. Lorsque la valeur true (valeur par défaut) est définie, Android restaure l'état de mise en sourdine globale au démarrage. Lorsque audioUseCarVolumeGroupMuting est défini sur true, cela n'a aucune incidence sur la conservation des modifications de mise en sourdine, car elles sont basées sur des groupes de volume individuels. La valeur par défaut est définie sur true et doit être remplacée lorsque la désactivation du son principal ne doit pas être conservée pour un appareil.
audioVolumeKeyEventTimeoutMs

Configuration définie dans le fichier de configuration du service automobile pour indiquer le délai d'expiration en millisecondes pendant lequel un groupe de volume automobile est considéré comme actif pour les modifications du contrôle du volume lors des événements de touches de volume. La configuration est utilisée comme suit :

  • Le délai d'inactivité permet de déterminer si une lecture (volume audio associé à l'utilisation audio de la lecture) peut toujours être prise en compte pour la sélection automatique du volume après son arrêt.
  • Le délai d'inactivité est également utilisé comme durée de pause requise entre les ajustements automatiques du volume pour modifier ce que l'utilisateur ajuste.

La valeur par défaut est de 3000 millisecondes et doit être ajustée par les OEM pour personnaliser l'expérience utilisateur.

audioUseCarVolumeGroupEvent Configuration définie dans le fichier de configuration du service automobile pour activer les événements de rappel pour les groupes de volume. Lorsque true, les clients reçoivent un rappel via ICarVolumeGroupEvent pour les événements qui ont un impact sur les groupes de volume. En cas d'activation :
  • Nous recommandons vivement aux fournisseurs de prendre également en charge IAudioControl#setModuleChangeCallback et IAudioControl#registerGainCallback pour les événements et les modifications apportées au matériel audio.
  • Lorsque CarVolumeCallback et CarVolumeGroupEventCallback sont enregistrés par la même application, les rappels d'index de groupe de volume et de désactivation du son du groupe de volume passent uniquement par CarVolumeGroupEventCallback. Par conséquent, nous recommandons vivement à toutes les applications de migrer vers la nouvelle interface de rappel pour garantir des performances cohérentes.
  • La valeur par défaut est false. Nous vous recommandons de définir cette valeur sur true, car les API permettant d'accepter les anciens rappels de volume sont obsolètes et seront bientôt supprimées.

config_useFixedVolume Défini dans frameworks/base/core/res/res/values/config.xml. Doit être défini sur true pour permettre au service audio de la voiture de gérer le contrôle du volume. Lorsque l'indicateur config_useFixedVolume n'est pas défini ou est défini sur false (valeur par défaut), les applications peuvent appeler les API de gestion du volume AudioManager et modifier le volume par type de flux dans le mixeur logiciel. Cela peut être indésirable en raison de l'effet potentiel sur d'autres applications et du fait que l'atténuation du volume dans le mixeur logiciel peut entraîner une diminution du nombre de bits significatifs disponibles dans le signal lorsqu'il est reçu par l'amplificateur matériel. Les nouveaux appareils qui n'ont pas été configurés et qui sont définis sur true reçoivent les modifications du volume via les API de volume et de désactivation du son AudioManager.
config_handleVolumeKeysInWindowManager Défini dans frameworks/base/core/res/res/values/config.xml, doit être défini sur true pour permettre au service audio de la voiture d'intercepter les événements de touche de volume. Si la valeur est définie sur false (valeur par défaut), les événements de touche de volume peuvent être transmis à l'application au premier plan et entraîner des résultats indésirables de la gestion des événements de touche de volume en dehors du service audio de la voiture.
audioUseMinMaxActivationVolume Défini dans le fichier de configuration du service automobile pour activer le volume d'activation minimal et maximal. Lorsque true, l'index de gain de volume peut être ajusté en raison de la gestion du volume d'activation minimal et maximal. Lorsque false (valeur par défaut), le volume d'activation minimal et maximal n'est pas pris en compte.
audioUseFadeManagerConfiguration Défini dans le fichier de configuration du service automobile pour activer le comportement de perte de focus audio appliqué par le système. Lorsque true, le framework audio de la voiture analyse les définitions de configuration de fondu audio de la voiture et applique le FadeManagerConfiguration respectif lors de la perte de priorité audio. Lorsque la valeur est false (valeur par défaut), le système n'impose pas de comportement de fondu lorsqu'une application perd la priorité audio.

Configurations du service audio de la voiture

Avant Android 13, les configurations du service automobile étaient remplacées par une superposition de configuration du produit (pour en savoir plus, consultez Personnaliser la compilation avec des superpositions de ressources) pour le fichier packages/services/Car/service/res/values/config.xml.

PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>

L'emplacement du fichier de configuration de <path_to_overlay> à l'emplacement réel doit inclure packages/services/Car/service/res/values/.

Organismes de gestion collective pour les services d'entretien automobile

Depuis Android 13, AAOS est compatible avec les superpositions de ressources d'exécution. Utilisez un RRO pour modifier la valeur de la configuration audio de la voiture. Par exemple, consultez les RRO pour la référence cuttlefish automobile dans device/google/cuttlefish/shared/auto/rro_overlay/. La configuration audioUseDynamicRouting est remplacée dans device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml.

<resources>
    <bool name="audioUseDynamicRouting">true</bool>
...

La carte de superposition des ressources se trouve dans device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml :

<overlay>
...
  <item target="bool/audioUseDynamicRouting"
value="@bool/audioUseDynamicRouting" />
...
</overlay>

Le fichier manifeste de superposition de ressources défini dans device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml contient targetPackage défini sur com.android.car.updatable.

Pour en savoir plus, consultez les ressources suivantes :

API avec fonctionnalités activées

La méthode renvoie true si la fonctionnalité est activée sur l'appareil, sinon false. Dans l'API CarAudioManager#isAudioFeatureEnabled, le paramètre transmis doit être l'un des suivants :

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING