Options AAOS de la configuration audio

Android Automotive OS (AAOS) utilise des indicateurs et des configurations pour activer différentes fonctionnalités, du routage dynamique aux indicateurs de fonctionnalités plus génériques, tels que la commande du volume à partir du service de voiture. 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 de voiture 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 la section Configurer les règles audio.
audioUseCarVolumeGroupMuting Défini dans le fichier de configuration du service de voiture pour activer le masquage de groupes de volume individuels. Lorsque la valeur est false (valeur par défaut), la mise en sourdine de groupes de volume individuels est désactivée. Au lieu de cela, la mise en sourdine active la mise en sourdine générale. Lorsque la valeur est true, la mise en sourdine du groupe de volume de la voiture est activée et chaque groupe de volume peut être mis en sourdine séparément. Lorsque true, le masquage du groupe de volume doit être implémenté au niveau du HAL de contrôle audio.
audioUseHalDuckingSignals Défini dans le fichier de configuration du service de voiture pour permettre à l'API IAudioControl#onDevicesToDuckChange d'informer HAL quand s'abaisser. Lorsque la valeur est true (valeur par défaut), l'API reçoit des signaux indiquant les périphériques de sortie à masquer et les utilisations qui maintiennent la sélection. Lorsque false, l'API n'est pas appelée. L'API n'est pas appelée, sauf si le HAL de contrôle audio implémente le masquage.
config_oemCarService Défini dans le fichier de configuration du service de voiture, il s'agit du nom du composant du service de personnalisation OEM. Les OEM peuvent choisir d'implémenter ce service pour personnaliser les actions de service automobile en fonction de 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 de voiture en particulier, les OEM peuvent implémenter n'importe lequel des sous-services audio pour gérer l'action audio. Pour en savoir plus, consultez la section Service de plug-in audio pour voitures. Si le nom du composant n'est pas valide, CarService ne se connectera à 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 de voiture, configuration permettant de sélectionner la version de la liste de priorité de 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 l'ordre indiqué.

La version par défaut est 1.

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Défini dans le fichier de configuration du service de voiture, configuration pour conserver l'état de mise en sourdine global. Lorsque true (valeur par défaut) est défini, Android restaure l'état de mise en sourdine globale au démarrage. Lorsque audioUseCarVolumeGroupMuting est true, cela n'a aucun impact sur les modifications de mise en sourdine persistantes, car les modifications de mise en sourdine sont basées sur des groupes de volume individuels. La valeur par défaut est définie sur true et doit être écrasée lorsque le mode silencieux principal ne doit pas être conservé pour un appareil.
audioVolumeKeyEventTimeoutMs

Défini dans le fichier de configuration du service de voiture, configuration pour indiquer le délai avant expiration en millisecondes lorsqu'un groupe de volume de voiture est considéré comme actif pour les modifications de contrôle du volume lors des événements de touche de volume. La configuration est utilisée comme suit:

  • Le délai avant expiration 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 l'arrêt de la lecture.
  • Le délai avant expiration 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 adapter l'expérience utilisateur.

audioUseCarVolumeGroupEvent Défini dans le fichier de configuration du service de voiture, configuration permettant d'activer les événements de rappel pour les groupes de volumes. Lorsque true, les clients reçoivent un rappel via ICarVolumeGroupEvent pour les événements qui ont un impact sur les groupes de volume. Lorsque cette option est activée:

  • Nous vous recommandons vivement 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 tous deux enregistrés par la même application, l'index du groupe de volume et les rappels de mise en sourdine du groupe de volume doivent passer par CarVolumeGroupEventCallback uniquement. Par conséquent, nous vous recommandons vivement de migrer toutes les applications 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 de prendre en charge 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 en fonction du 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 mélangeur logiciel peut entraîner moins de bits significatifs disponibles dans le signal lorsqu'il est reçu à 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 de volume via les API de volume et de mise en sourdine 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 transférés vers l'application de premier plan et peuvent 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.

Configurations du service audio pour voiture

Avant Android 13, les configurations de service de voiture étaient écrasées par une superposition de configuration de produit (pour en savoir plus, consultez la section Personnaliser le build 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/.

RRO 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 est contenue 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 correspondre à l'un des éléments suivants:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING