Options AAOS de la configuration audio

Android Automotive OS (AAOS) utilise des options et des configurations pour permettre le routage dynamique jusqu'aux flags de fonctionnalités plus génériques, comme le contrôle du volume auprès du service automobile. Options de configuration AAOS actuelles pour l'audio sont décrits ici.

Signaler Objectif
audioUseDynamicRouting Défini dans le fichier de configuration du service automobile pour Activez le routage AAOS. La configuration doit être définie sur true. Lorsque false, le routage, ainsi qu'une grande partie de CarAudioService, sont désactivés et l'OS revient au comportement par défaut décrit dans Configurer des règles audio
audioUseCarVolumeGroupMuting Définie dans le fichier de configuration du service automobile pour permettre la coupure du son de l'utilisateur des groupes de volumes. Si défini sur false (valeur par défaut), masquage de groupes de volumes individuels est désactivée. À la place, le son coupé permet d'activer ou de désactiver le son principal. Si elle est définie sur true, la coupure du son du groupe de volumes de la voiture est activée, et chaque un groupe de volumes individuel peut être coupé séparément. Lorsque true, la blocage des groupes de volumes doit être implémentée au niveau HAL de commande audio.
audioUseHalDuckingSignals Défini dans le fichier de configuration du service automobile pour activer L'API IAudioControl#onDevicesToDuckChange indique à HAL quand canard. 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 qui réservent l'attention. Lorsque false, l'API n'est pas appelée. L'API n'est appelée que si le Commandes audio HAL met en œuvre 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 de l'OEM. Les OEM peuvent choisir d'implémenter ce service pour personnaliser les actions d'entretien pour différentes règles. Si les OEM choisissent de mettre en œuvre ce composant, elle doit implémenter un service pour étendre OemCarService exposé par car-lib, puis implémenter les services des composants requis. Pour les services audio pour voiture en particulier, les OEM peut implémenter n'importe quel sous-service audio pour gérer l'action audio. Pour détails, consultez Service de plug-in audio pour voiture. Si le nom du composant n'est pas valide, CarService ne se connectera pas à n'importe quel 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 Version de la liste des priorités du contexte d'ajustement du volume.

La version 1 inclut tous les contextes audio, dans cet ordre:

  • 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 la persistance globale le son coupé. Lorsque true (valeur par défaut), Android restaure le le mode silencieux global au démarrage. Lorsque audioUseCarVolumeGroupMuting est true, cela n'a aucun impact sur les modifications persistantes pour les notifications ignorées sont basées sur des groupes de volumes individuels. La valeur par défaut est définie sur true et doit être remplacé lorsque la coupure du son maître ne doit pas être conservées pour un appareil.
audioVolumeKeyEventTimeoutMs

Définie dans le fichier de configuration du service automobile, la configuration pour indiquer délai avant expiration en millisecondes alors qu'un groupe de volumes de voiture est considéré comme actif pour les réglages du volume lors des événements de touche de volume. La configuration est utilisée comme suit:

  • Le délai avant expiration est utilisé pour déterminer si une lecture (volume audio associé avec l'utilisation du son de la lecture) peuvent quand même être le réglage du volume après l'arrêt de la lecture.
  • Le délai avant expiration est également utilisé pour définir la durée de mise en pause requise entre les les réglages de volume pour changer ce que l'utilisateur règle.

La valeur par défaut est 3000 milliseconde et doit être ajustés par les OEM pour adapter l'expérience utilisateur.

audioUseCarVolumeGroupEvent Définie dans le fichier de configuration du service automobile, configuration permettant d'activer le rappel les événements aux groupes de volumes. Lorsque la valeur est true, les clients reçoivent un rappel. via ICarVolumeGroupEvent aux événements ayant un impact sur le volume groupes. Lorsque cette option est activée:

  • Nous recommandons vivement aux fournisseurs IAudioControl#setModuleChangeCallback et IAudioControl#registerGainCallback pour les événements et les modifications du matériel audio.
  • Lorsque CarVolumeCallback et CarVolumeGroupEventCallback sont enregistrés par le même l'index du groupe de volumes et les rappels de coupure du son à CarVolumeGroupEventCallback uniquement. Par conséquent, nous recommandons vivement de migrer toutes les applications vers la nouvelle de rappel pour garantir des performances constantes.
  • La valeur par défaut est false. Nous vous recommandons de définir vers true, car les API permettant de gérer les anciens volumes sont obsolètes et seront bientôt complètement supprimés.

config_useFixedVolume Défini dans frameworks/base/core/res/res/values/config.xml. Doit être défini sur true pour permettre au service audio voiture de gérer le contrôle du volume. Lorsque l'option config_useFixedVolume n'est pas ou si elle est définie sur false (valeur par défaut), les applications peuvent appeler AudioManager et modifier le volume de dans le mélangeur logiciel. Cela peut être indésirable en raison l'effet potentiel sur d'autres applications et l'atténuation du volume mélangeur logiciel peut réduire le nombre de bits significatifs disponibles dans le au niveau de l'amplificateur matériel. Les nouveaux appareils qui n'ont pas configurés et définis sur true reçoivent les modifications de volume via les API de volume et de coupure 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 des touches de volume. S'il est défini sur false (valeur par défaut) les événements clés peuvent être transmis à l'application au premier plan et peuvent entraîner de la gestion des événements de touches de volume en dehors du service audio de la voiture.

Configurations des services audio pour voiture

Avant Android 13, les configurations des services automobile étaient écrasées avec une configuration de produit superposée (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, L'emplacement doit inclure packages/services/Car/service/res/values/.

RRO pour l'entretien automobile

Depuis Android 13, AAOS prend en charge Superpositions de ressources d'exécution. Utilisez une RRO pour modifier de la configuration audio de la voiture. Par exemple, consultez les RRO pour référence automobile cuttlefish dans device/google/cuttlefish/shared/auto/rro_overlay/ La 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 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 le targetPackage défini sur com.android.car.updatable.

Pour en savoir plus, consultez les ressources suivantes:

API compatible avec les fonctionnalités

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