Audiosteuerung HAL

HAL zur Audiosteuerung wurde in Android 9 eingeführt, um unterstützen Audioanwendungsfälle für die Automobilbranche. Ab Android 14. HAL zur Audiosteuerung unterstützt:

  • Überblenden und ausbalancieren
  • Anfrage für HAL-Audiofokus
  • Stummschalten und Ducking des Geräts
  • Pegeländerungen bei Audiogeräten
  • Änderungen an der Konfiguration des Audioports

Abbildung 1 zeigt einen allgemeinen Überblick über die Audiodienstarchitektur des Autos in der der Audiodienst des Autos mit der Audiosteuerungs-HAL kommuniziert.

Mehrzonen-Audio konfigurieren

Abbildung 1: Mehrzonen-Audio konfigurieren

Audio aus- und ausbalancieren

Einführung der HAL-Version 1 der HIDL-Audiosteuerung für Android 9, um das Aus- und Ausgleichen von Audio im Auto zu unterstützen Cases. Abgesehen von den allgemeinen Audioeffekten, die bereits in Android verfügbar sind, können System-Apps die Audiobalance einstellen und überblenden. CarAudioManager-APIs:

class CarAudioManager {
       /**
       *   Adjust the relative volume in the front vs back of the vehicle cabin.
       *
       *   @param value in the range -1.0 to 1.0 for fully toward the back through
       *   fully toward the front. 0.0 means evenly balanced.
       */
       @SystemApi
       @RequiresPermission(Car.PERMISSION_CAR_CONTROL_AUDIO_VOLUME)
       public void setFadeTowardFront(float value);

       /**
       *   Adjust the relative volume on the left vs right side of the vehicle cabin.
       *
       *   @param value in the range -1.0 to 1.0 for fully toward the left through
       *   fully toward the right. 0.0 means evenly balanced.
       */
       @SystemApi
       @RequiresPermission(Car.PERMISSION_CAR_CONTROL_AUDIO_VOLUME)
       public void setBalanceTowardRight(float value);
}

Nach dem Aufrufen dieser APIs werden die entsprechenden HAL APIs zur Audiosteuerung aufgerufen. vom Auto-Audiodienst:

interface IAudioControl {
       /**
       *   Control the right/left balance setting of the car speakers.
       */
       oneway setBalanceTowardRight(float value);

       /**
       *   Control the fore/aft fade setting of the car speakers.
       */
       oneway setFadeTowardFront(float value);
}

Die API ist in allen Versionen des HAL zur Audiosteuerung verfügbar, einschließlich der neuen AIDL HAL-Schnittstelle.

Audiofokus-Anfrage von HAL

AAOS basiert ähnlich wie Android auf der aktiven Beteiligung von Apps im Bereich Audio. die Audiowiedergabe in Autos zu verwalten. Die Fokusinformationen werden verwendet, um für die Lautstärke und Ducking reguliert werden. Um diese Herausforderungen für eine bessere Integration von autospezifischen Geräuschen der Android-Erfahrung wurden, wurden die folgenden Audioattribute eingeführt: Android 11:

  • EMERGENCY
  • SAFETY
  • VEHICLE_STATUS
  • ANNOUNCEMENT

Zusätzlich zu dieser Änderung wurde ein Mechanismus für Geräusche hinzugefügt, die aus außerhalb von Android an Anfragen zur Audiofokussierung teilnehmen. Das HIDL-Audiosystem Version 2 der HAL-Kontrolle wurde eingeführt, um Fokusanfragen zu ermöglichen, von außerhalb von Android:

interface IAudioControl {
       /**
       *   Registers focus listener to be used by HAL for requesting and
       *   abandoning audio focus.
       *   @param listener the listener interface
       *   @return closeHandle A handle to unregister observer.
       */
       registerFocusListener(IFocusListener listener)
       generates (ICloseHandle closeHandle);

       /**
       *   Notifies HAL of changes in audio focus status for focuses requested
       *   or abandoned by the HAL.
       *
       *   @param usage The audio usage associated with the focus change
       *   @param zoneId The identifier for the audio zone that the HAL is
       *   playing the stream in
       *   @param focusChange the AudioFocusChange that has occurred
       */
       oneway onAudioFocusChange(bitfield<AudioUsage> usage, int32_t zoneId,
       bitfield<AudioFocusChange> focusChange);
}

Dabei ist IFocusListener so definiert:

interface IFocusListener {
       /**
       *   Called whenever HAL is requesting focus as it is starting to play
       *   audio of a given usage in a specified zone.
       *
       *   @param usage The audio usage associated with the focus request
       *    {@code AttributeUsage}
       *   @param zoneId The identifier for the audio zone where the HAL is
       *    requesting focus
       *   @param focusGain The AudioFocusChange associated with this request.
       */
       oneway requestAudioFocus(bitfield<AudioUsage> usage,
       int32_t zoneId, bitfield<AudioFocusChange> focusGain);
       /**
       *   Called whenever HAL is abandoning focus as it is finished playing audio
       *   of a given usage in a specific zone.
       *
       *   @param usage The audio usage for which the HAL is abandoning focus
       *    {@code AttributeUsage}
       *   @param zoneId The identifier for the audio zone that the HAL
       *    abandoning focus
       */
       oneway abandonAudioFocus(bitfield<AudioUsage> usage, int32_t zoneId);
}

Mit den oben genannten APIs können Sie den Audiofokus vom HAL anfordern und verwerfen, . Als Antwort berücksichtigt der Audiodienst des Autos den Audiofokus und leitet die Ergebnisse asynchron an den IAudioControl#onAudioFocusChange-Methode.

Diese API kann auch verwendet werden, um Änderungen für die Audiofokus-Anfrage zu überwachen, stammt vom Audio-Steuerelement HAL. Im Allgemeinen ist der Ton im Stehen Anfrage vom HAL gilt als aktiv und unterscheidet sich dadurch von einem Audiofokus. Anfrage von Android, bei der nur eine entsprechende aktive Audiotrack-Wiedergabe gilt als aktiv.

HIDL zu AIDL Audio Control HAL migrieren

Mit Einführung von AIDL und der erforderlichen Migration in Android 12 (weitere Informationen finden Sie unter AIDL for HALs) wurde der HAL für die Audiosteuerung zu AIDL migriert. Bei vorhandenen HIDL Audio Control Version 2 APIs wird die Migration erforderten kleinere Aktualisierungen an den vorhandenen Methoden:

interface IAudioControl {
       /**
       *   Notifies HAL of changes in audio focus status for focuses requested
       *   or abandoned by the HAL.
       *
       *   @param usage The audio usage associated with the focus change
       *        {@code AttributeUsage}. See {@code audioUsage} in
       *        audio_policy_configuration.xsd for the list of allowed values.
       *   @param zoneId The identifier for the audio zone that the HAL is
       *        playing the stream in
       *   @param focusChange the AudioFocusChange that has occurred.
       */
       oneway void onAudioFocusChange(in String usage, in int zoneId,
              in AudioFocusChange focusChange);
       /**
       *   Registers focus listener to be used by HAL for requesting and
       *   abandoning audio focus.
       *   @param listener the listener interface.
       */
       oneway void registerFocusListener(in IFocusListener listener);
       /**
       *   Control the right/left balance setting of the car speakers.
       */
       oneway void setBalanceTowardRight(in float value);
       /**
       *   Control the fore/aft fade setting of the car speakers.
       */
       oneway void setFadeTowardFront(in float value);
}

Und die entsprechende IFocusListener:

       interface IFocusListener {
       /**
       *   Called whenever HAL is abandoning focus as it is finished playing audio
       *   of a given usage in a specific zone.
       *
       *   @param usage The audio usage for which the HAL is abandoning focus
       *        {@code AttributeUsage}. See {@code audioUsage} in
       *        audio_policy_configuration.xsd for the list of allowed values.
       *   @param zoneId The identifier for the audio zone that the HAL
       *        abandoning focus
       */
       oneway void abandonAudioFocus(in String usage, in int zoneId);
       /**
       *   Called whenever HAL is requesting focus as it is starting to play audio
       *        of a given usage in a specified zone.
       *
       *   @param usage The audio usage associated with the focus request
       *        {@code AttributeUsage}. See {@code audioUsage} in
       *        audio_policy_configuration.xsd for the list of allowed values.
       *   @param zoneId The identifier for the audio zone where the HAL is
       *        requesting focus
       *   @param focusGain The AudioFocusChange associated with this request.
       */
       oneway void requestAudioFocus(in String usage, in int zoneId,
              in AudioFocusChange focusGain);
}

Stummschalten von Volume-Gruppen

Mit Android 12 wurde die Stummschaltung von Volume-Gruppen eingeführt, um umfassendere Stummschaltung während der Audiointeraktionen des Nutzers. Dieses Ermöglicht es dem HAL der Audiosteuerung, Stummschaltungen zu empfangen, wenn sie vom Auto abgefangen werden Audiodienst

Zum Aktivieren der Funktion müssen OEMs die audioUseCarVolumeGroupMuting-Konfiguration festlegen nach true mit dem Autodienst config.xml:

<!-- Configuration to enable muting of individual volume groups.
If this is set to false, muting of individual volume groups is disabled,
instead muting will toggle master mute. If this is set to true, car volume
group muting is enabled and each individual volume group can be muted separately. -->
<bool name="audioUseCarVolumeGroupMuting">true</bool>

Vor Android 13 musste die Konfiguration überschrieben werden mit einem Laufzeitressourcen-Overlay für packages/services/Car/service/res/values/config.xml (weitere Informationen siehe Build mit Ressource anpassen Overlays). Von Android 13 können Sie Laufzeitressourcen-Overlays verwenden, um Konfigurationswert. Weitere Informationen finden Sie unter Wert der Ressourcen einer Anwendung ändern während der Laufzeit.

System-Apps können anhand der CarAudioManager#isAudioFeatureEnabled-API. Der übergebene Parameter muss die CarAudioManager.AUDIO_FEATURE_VOLUME_GROUP_MUTING-Konstante. Die Methode gibt true, wenn die Funktion auf dem Gerät aktiviert ist, andernfalls false.

Die AIDL aktiviert nicht nur das Feature audioUseCarVolumeGroupMuting, sondern auch HAL muss den Stummschaltungsmechanismus für die Lautstärkegruppe implementieren:

interface IAudioControl {
       /**
       *   Notifies HAL of changes in output devices that the HAL should apply
       *   muting to.
       *
       *   This will be called in response to changes in audio mute state for each
       *   volume group and will include a {@link MutingInfo} object per audio
       *   zone that experienced a mute state event.
       *
       *   @param mutingInfos an array of {@link MutingInfo} objects for the audio
       *   zones where audio mute state has changed.
       */
       oneway void onDevicesToMuteChange(in MutingInfo[] mutingInfos);
}

Die Stummschaltungsinformationen enthalten die entsprechenden Informationen zur Stummschaltung des Audiosystems:

parcelable MutingInfo {
       /**
       *   ID of the associated audio zone
       */
       int zoneId;
       /**
       *   List of addresses for audio output devices that should be muted.
       */
       String[] deviceAddressesToMute;
       /**
       *   List of addresses for audio output devices that were previously be
       *   muted and should now be unmuted.
       */
       String[] deviceAddressesToUnmute;
}

In AAOS gibt es zwei verschiedene Mechanismen zum Unterdrücken:

  • Schlüsselereignisse, für die das Audio verwendet wird KEYCODE_VOLUME_MUTE.

  • Direkte Aufrufe an den Audiodienst des Autos über die Stummschaltungs-API des Auto-Audio-Managers CarAudioManager#setVolumeGroupMute

Wenn diese Mechanismen aktiviert sind, lösen beide Mechanismen eine Stummschaltung eines Anrufs an den HAL der Audiosteuerung aus.

Auto-Audio-Ducking

Mit Android 12 wird Auto-Audio-Ducking eingeführt, um die Steuerung gleichzeitiger Audiofunktionen zu optimieren. Wiedergabe von Audiostreams. So können OEMs ihr eigenes Ducking implementieren. basierend auf der physischen Audiokonfiguration des Autos und der aktuellen Wiedergabe wie vom Audiodienst des Autos festgelegt.

Der Ducking-Mechanismus basiert auf den Änderungen des Audiofokus-Stacks. Wenn eine eine Fokusänderung erfolgt (unabhängig davon, ob eine Fokusanfrage oder ein Abbruch des Fokus erfolgt), der Ton HAL wird informiert. Ähnlich wie bei der Stummschaltung der Audio-Ducking kann mit dem Konfigurations-Flag audioUseHalDuckingSignals aktiviert werden:

<!-- Configuration to enable IAudioControl#onDevicesToDuckChange API to
inform HAL when to duck. If this is set to true, the API will receive signals
indicating which output devices to duck as well as what usages are currently
holding focus. If set to false, the API will not be called. -->
<bool name="audioUseHalDuckingSignals">true</bool>

Um die Funktion zu aktivieren, muss der HAL der AIDL-Audiosteuerung die entsprechende mit dem Signal, das vom Audiodienst des Autos empfangen wird:

interface IAudioControl {
       /**
       *   Notifies HAL of changes in output devices that the HAL should apply
       *   ducking to.
       *
       *   This will be called in response to changes in audio focus, and will
       *   include a {@link DuckingInfo} object per audio zone that experienced
       *   a change in audo focus.
       *
       *   @param duckingInfos an array of {@link DuckingInfo} objects for the
       *   audio zones where audio focus has changed.
       */
       oneway void onDevicesToDuckChange(in DuckingInfo[] duckingInfos);
}

Die relevanten Informationen zum Audiosystem sind im Audio-Ducking enthalten. Informationen:

parcelable DuckingInfo {
       /**
       *   ID of the associated audio zone
       */
       int zoneId;
       /**
       *   List of addresses for audio output devices that should be ducked.
       */
       String[] deviceAddressesToDuck;
       /**
       *   List of addresses for audio output devices that were previously be
       *   ducked and should now be unducked.
       */
       String[] deviceAddressesToUnduck;
       /**
       *   List of usages currently holding focus for this audio zone.
       */
       String[] usagesHoldingFocus;
}

Abgesehen von den Konfigurationsinformationen des Autos, die in den Geräteadressen enthalten sind Informationen dazu enthalten, welche Audioinhalte die Nutzung von Attributen im Mittelpunkt. Diese Daten sollen den Audiosystem, für das die Nutzung von Audioattributen aktiv ist.

Dies ist erforderlich, da in der Audiokonfiguration des Autos mehrere Attribute können einem einzelnen Gerät zugewiesen werden. ist nicht klar, welche Nutzungen aktiv sind.

AIDL Audio-Steuerung HAL 2.0

Um APIs zu aktualisieren und neue Funktionen zu ermöglichen, hat die AIDL-Audiosteuerungs-HAL wurde in Android 13 auf Version 2.0 aktualisiert:

  • Audiofokus mit PlaybackTrackMetadata
  • Audio verstärkt Callback

Wiedergabemetadaten sind in android.hardware.audio.common so definiert:

parcelable PlaybackTrackMetadata {
       AudioUsage usage = INVALID;
       AudioContentType contentType = UNKNOWN;
       float gain;
       AudioChannelLayout channelMask;
       AudioDevice sourceDevice;
       String[] tags;
}

Alle anderen Funktionen der AIDL Audio Control Version 1.0 blieben und können verwendet. Eine Ausnahme betrifft die Methode zum Ändern des Audiofokus. Eine Beschreibung finden Sie unter Zur Methode zum Ändern des Audiofokus.

Fokus der Audiosteuerung mit Metadaten des Wiedergabetitels

Um dem Audiosystem unter dem HAL mehr Informationen zur Verfügung zu stellen, werden jetzt Updates PlaybackTrackMetadata Genauer gesagt, wurde die HAL zur Audiosteuerung mit einem neue Methode:

interface IAudioControl {
       /**
       *   Notifies HAL of changes in audio focus status for focuses requested
       *   or abandoned by the HAL.
       *
       *   The HAL is not required to wait for a callback of AUDIOFOCUS_GAIN
       *   before playing audio, nor is it required to stop playing audio in the
       *   event of a AUDIOFOCUS_LOSS callback is received.
       *
       *   @param playbackMetaData The output stream metadata associated with
       *    the focus request
       *   @param zoneId The identifier for the audio zone that the HAL is
       *    playing the stream in
       *   @param focusChange the AudioFocusChange that has occurred.
       */
       oneway void onAudioFocusChangeWithMetaData(
       in PlaybackTrackMetadata playbackMetaData, in int zoneId,
       in AudioFocusChange focusChange);
}

An IFocusListener wird eine ähnliche, entsprechende Änderung vorgenommen:

       /**
       *   Called to indicate that the audio output stream associated with
       *   {@link android.hardware.audio.common.PlaybackTrackMetadata} is
       *   abandoning focus as playback has stopped.
       *
       *   @param playbackMetaData The output stream metadata associated with
       *    the focus request
       *   @param zoneId The identifier for the audio zone that the HAL
       *    abandoning focus
       */
       oneway void abandonAudioFocusWithMetaData(
       in PlaybackTrackMetadata playbackMetaData, in int zoneId);
       /**
       *   Called to indicate that the audio output stream associated with
       *   {@link android.hardware.audio.common.PlaybackTrackMetadata} has taken
       *   the focus as playback is starting for the corresponding stream.
       *
       *   @param playbackMetaData The output stream metadata associated with
       *    the focus request
       *   @param zoneId The identifier for the audio zone that the HAL
       *    abandoning focus
       *   @param focusGain The focus type requested.
       */
       oneway void requestAudioFocusWithMetaData(
       in PlaybackTrackMetadata playbackMetaData, in int zoneId,
       in AudioFocusChange focusGain);
}

Bei der Methode zum Ändern des Audiofokus

Die oben beschriebenen Fokusoperationen funktionieren genauso wie unter Audiodaten beschriebene Operationen . Fokusanfrage von HAL. Nur die Metadaten des Wiedergabetitels enthalten mehr sowie die Nutzungen der Audioattribute. Grundsätzlich gilt, es sei denn, die zusätzlichen Informationen aus den Metadaten des Wiedergabetitels benötigt werden, kann die HAL-Steuerung weiterhin die vorherigen Methoden verwenden.

Wenn HAL-Entwickler keine Unterstützung für IAudioControl#onAudioFocusChangeWithMetaData, sollte die Methode Ergebnisse zurückgeben mit dem Fehler UNKNOWN_TRANSACTION, wie beschrieben Verwenden der Versionsansicht der Schnittstelle Methoden.

Der Audiodienst ruft zuerst onAudioFocusChangeWithMetaData auf und wird der Vorgang dann mit der onAudioFocusChange-Methode wiederholt, wenn UNKNOWN_TRANSACTION Fehlerergebnisse.

Audio-Ducking im Auto mit Wiedergabetitel-Metadaten

In Version 2.0 des AIDL Audio Control HAL wurden die Metadaten des Wiedergabetitels die Audio-Ducking-Informationen:

parcelable DuckingInfo {
       /**
       *   ID of the associated audio zone
       */
       int zoneId;
       /**
       *   List of addresses for audio output devices that should be ducked.
       */
       String[] deviceAddressesToDuck;
       /**
       *   List of addresses for audio output devices that were previously be
       *   ducked and should now be unducked.
       */
       String[] deviceAddressesToUnduck;
       /**
       *   List of usages currently holding focus for this audio zone.
       */
       String[] usagesHoldingFocus;
       /**
       *   List of output stream metadata associated with the current focus
       *   holder for this audio zone
       */
       @nullable PlaybackTrackMetadata[] playbackMetaDataHoldingFocus;
}

usagesHoldingFocus wurde verworfen. Entwickler sollten jetzt playbackMetaDataHoldingFocus, um die Verwendung des Audioattributs und andere zu bestimmen Audioinformationen. Dennoch enthält der Parameter usagesHoldingFocus weiterhin erforderlichen Informationen, bis diese Option offiziell entfernt wird.

Callback für Audioverstärkung

Um Audioänderungen unter dem HAL in Android besser sichtbar für die AAOS-Datei vorzunehmen 13 haben wir einen Mechanismus hinzugefügt, Audio wird vom Audiosystem des Autos auf den Audiodienst des Autos umgestellt. Die die Änderungen am Lautstärkeindex der Audioverstärkung mit dem entsprechenden Grund aufzeigt. Die Verstärkung wurde geändert:

  • Blockierte oder ignorierte Einschränkungen
  • Einschränkungen
  • Dämpfungsbeschränkungen

Durch diese Änderungen werden diese Einschränkungen für die und schließlich eine System-UI-App, um den Nutzer zu informieren. Der letzte Teil, die Präsenz in einer möglichen System-Benutzeroberfläche, wurde im weiteren Verlauf Android 14, damit System-UI-Apps diese Informationen leichter abrufen können über einen Rückrufmechanismus für Informationen zu Volumengruppen.

Das HAL API zur Audiosteuerung registriert den Verstärkungs-Callback wie folgt:

interface IAudioControl {
       /**
       *   Registers callback to be used by HAL for reporting unexpected gain(s)
       *    changed and the reason(s) why.
       *
       *   @param callback The {@link IAudioGainCallback}.
       */
       oneway void registerGainCallback(in IAudioGainCallback callback);
}

IAudioGainCallback ist so definiert:

interface IAudioGainCallback {
       /**
       *   Used to indicate that one or more audio device port gains have changed,
       *   i.e. initiated by HAL, not by CarAudioService.
       *   This is the counter part of the
       *   {@link onDevicesToDuckChange}, {@link onDevicesToMuteChange} and,
       *   {@link setAudioDeviceGainsChanged} APIs.
       *
       *   @param reasons List of reasons that triggered the given gains changed.
       *   @param gains List of gains affected by the change.
       */
       void onAudioDeviceGainsChanged(in Reasons[] reasons,
       in AudioGainConfigInfo[] gains);
}

Wie in der API-Dokumentation erwähnt, wird der GainCallback vom Auto-Audiodienst zum Audio-HAL. Wenn die API vom Audiosteuerung HAL, reagiert der Auto-Audiodienst mit einer entsprechenden Aktion (wie Block-, Limit- oder Attenuate Gain Index) .

Der HAL bestimmt, wann die API aufgerufen wird, hauptsächlich, um Änderungen an der und Indexstatus erlangen. Speziell in Bezug auf gesetzlich vorgeschriebene Anforderungen: Das Audiosystem des Fahrzeugs die erforderliche Aktion ausführen und den Callback verwenden, um Informationen an die den Audiodienst des Autos für die Nutzung durch Nutzer. Um beispielsweise eine UI anzuzeigen, für den Nutzer.

AIDL Audio-Steuerung HAL 3.0

Die HAL-Version der AIDL-Audiosteuerung von Android 14 ist Aktualisierung auf Version 3.0, um die APIs für eine stabilere Audioverstärkung zu aktualisieren die Indexfunktionalität. Mit der HAL API zur Audiosteuerung kann der Audiodienst Legen Sie ein IModuleChangeCallback fest und heben Sie die Festlegung auf:

interface IAudioControl {
       /**
       *   Sets callback with HAL for notifying changes to hardware module
       *   (that is: {@link android.hardware.audio.core.IModule}) configurations.
       *
       *   @param callback The {@link IModuleChangeCallback} interface to use
       *    use when new updates are available for
       */
       void setModuleChangeCallback(in IModuleChangeCallback callback);
       /**
       *   Clears module change callback
       */
       void clearModuleChangeCallback();
}

Die setModuleChangeCallback wird vom Audiodienst des Autos registriert, wenn die oder bei der Wiederherstellung nach einem Fehler. Beispiel: Eine Audiosteuerung Der Audiodienst des Autos hat eine Todesbenachrichtigung für HAL-Binder erhalten. Das Audio Die HAL-Steuerungs-Implementierung sollte jeden vorhandenen Moduländerungs-Callback ersetzen. wenn die API aufgerufen wird.

Für die clearModuleChangeCallback API sollte bei der Implementierung das Feld vorhanden ist, oder unternehmen Sie nichts, falls noch keiner vorhanden ist. Es empfiehlt sich, Implementierung der Audiosteuerung, um einen Todesbeobachter für den Callback zu registrieren und um dann den Callback zu löschen, wenn bei binder Defekt ausgelöst wird.

IModuleChangeCallback ist so definiert:

oneway interface IModuleChangeCallback {
       /**
       *   Used to indicate that one or more {@link AudioPort} configs have
       *   changed. Implementations MUST return at least one AudioPort.
       *
       *   @param audioPorts list of {@link AudioPort} that are updated
       */
       void onAudioPortsChanged(in AudioPort[] audioPorts);
}

Wenn der Callback für den Modulwechsel vom Audiodienst des Autos registriert wird, bereit, Änderungen am Audioport über die onAudioPortChanged API zu empfangen. Die API kann verwendet werden, um die Lautstärkeerhöhungen für das Audiosystem zu initialisieren, sobald die Callback registriert ist. Für andere dynamische Verstärkungsänderungen kann die API jederzeit. Die entsprechenden Änderungen werden angewendet und der Audiodienst des Autos wird aktualisiert entsprechend anpassen.