Flagi AAOS konfiguracji dźwięku

System operacyjny Android Automotive (AAOS) używa flag i konfiguracji do włączania różnych funkcji, począwszy od routingu dynamicznego po bardziej ogólne flagi funkcji, takie jak sterowanie głośnością z poziomu usługi samochodowej. Flagi konfiguracji AAOS do zarządzania dźwiękiem są opisane tutaj.

Flaga Cel
audioUseDynamicRouting Zdefiniowana w pliku konfiguracyjnym usługi samochodowej, aby włączyć routing AAOS. Konfiguracja musi być ustawiona na true. Gdy wartość to false, routing i większość funkcji CarAudioService są wyłączone, a system operacyjny wraca do domyślnego zachowania opisanego w Konfigurowanie zasad dotyczących dźwięku.
useCoreAudioRouting Zdefiniowana w pliku konfiguracyjnym usługi samochodowej, aby włączyć zarządzanie routingiem dźwięku w AAOS. Gdy wartość jest ustawiona na true, usługa dźwięku w samochodzie używa definicji konfiguracji ustawionych za pomocą konfigurowalnego mechanizmu zasad dotyczących dźwięku. Jeśli wartość jest ustawiona na false, zarządzanie routingiem wraca do definicji dynamicznej mieszanki zasad dotyczących dźwięku w usłudze dźwięku w samochodzie skonfigurowanej za pomocą audioUseDynamicRouting.
useCoreAudioVolume Zdefiniowana w pliku konfiguracyjnym usługi samochodowej, aby włączyć zarządzanie głośnością dźwięku w AAOS. Gdy wartość jest ustawiona na true, usługa dźwięku w samochodzie używa definicji grup głośności ustawionych za pomocą konfigurowalnego mechanizmu zasad dotyczących dźwięku. Jeśli wartość jest ustawiona na false, zarządzanie głośnością wraca do domyślnej definicji grupy głośności w usłudze dźwięku w samochodzie skonfigurowanej za pomocą audioUseDynamicRouting.
audioUseCarVolumeGroupMuting Zdefiniowana w pliku konfiguracyjnym usługi samochodowej, aby włączyć wyciszanie poszczególnych grup głośności. Gdy wartość jest ustawiona na false (wartość domyślna), wyciszanie poszczególnych grup głośności jest wyłączone. Zamiast tego wyciszanie przełącza wyciszenie główne. Gdy wartość jest ustawiona na true, wyciszanie grupy głośności w samochodzie jest włączone i każdą grupę głośności można wyciszyć osobno. Gdy wartość to true, wyciszanie grupy głośności musi być zaimplementowane w HAL sterowania dźwiękiem.
audioUseHalDuckingSignals Zdefiniowana w pliku konfiguracyjnym usługi samochodowej, aby włączyć interfejs API IAudioControl#onDevicesToDuckChange informujący HAL, kiedy należy wyciszyć dźwięk. Gdy true (wartość domyślna), interfejs API otrzymuje sygnały wskazujące, które urządzenia wyjściowe mają być wyciszone i które zastosowania mają fokus. Gdy wartość to false, interfejs API nie jest wywoływany. Interfejs API nie jest wywoływany, chyba że HAL sterowania dźwiękiem implementuje wyciszanie.
config_oemCarService Zdefiniowana w pliku konfiguracyjnym usługi samochodowej. Jest to nazwa komponentu usługi dostosowywania OEM. Producenci OEM mogą zaimplementować tę usługę, aby dostosować działania usługi samochodowej do różnych zasad. Jeśli producenci OEM zdecydują się zaimplementować ten komponent, muszą zaimplementować usługę, która rozszerza OemCarService udostępnianą przez car-lib, a następnie zaimplementować wymagane usługi komponentu. W przypadku usługi dźwięku w samochodzie producenci OEM mogą zaimplementować dowolną z usług podrzędnych dźwięku, aby zarządzać działaniem dźwięku. Więcej informacji znajdziesz w artykule Usługa wtyczki dźwięku w samochodzie. Jeśli nazwa komponentu jest nieprawidłowa, CarService nie połączy się z żadną usługą OEM. Nazwa komponentu nie może być pakietem firmy zewnętrznej. Musi być wstępnie zainstalowana.
audioVolumeAdjustmentContextsVersion

Zdefiniowana w pliku konfiguracyjnym usługi samochodowej. Konfiguracja umożliwiająca wybranie wersji listy priorytetów kontekstu dostosowania głośności.

Wersja 1 zawiera wszystkie konteksty dźwięku w tej kolejności:

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

Wersja 2 jest ograniczona do tych kontekstów w tej kolejności.

Domyślna wersja to 1.

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Zdefiniowana w pliku konfiguracyjnym usługi samochodowej. Konfiguracja umożliwiająca utrwalanie globalnego stanu wyciszenia. Gdy true (wartość domyślna), Android przywraca globalny stan wyciszenia podczas uruchamiania. Gdy audioUseCarVolumeGroupMuting ma wartość true, nie ma to wpływu na utrwalanie zmian wyciszenia, ponieważ zmiany wyciszenia są oparte na poszczególnych grupach głośności. Wartość domyślna jest ustawiona na true i musi zostać zastąpiona, gdy wyciszenie główne nie powinno być utrwalane na urządzeniu.
audioVolumeKeyEventTimeoutMs

Zdefiniowana w pliku konfiguracyjnym usługi samochodowej. Konfiguracja umożliwiająca określenie limitu czasu w milisekundach, przez który grupa głośności w samochodzie jest uznawana za aktywną w przypadku zmian sterowania głośnością podczas zdarzeń przycisków głośności. Konfiguracja jest używana w ten sposób:

  • Limit czasu służy do określenia, czy odtwarzanie (głośność dźwięku powiązana z użyciem dźwięku podczas odtwarzania) może być nadal brane pod uwagę przy automatycznym wyborze głośności po zatrzymaniu odtwarzania.
  • Limit czasu jest też używany jako czas wstrzymania wymagany między automatycznymi dostosowaniami głośności, aby zmienić to, co użytkownik dostosowuje.

Wartość domyślna to 3000 milisekund. Producenci OEM powinni ją dostosować, aby dopasować ją do potrzeb użytkowników.

audioUseCarVolumeGroupEvent Zdefiniowana w pliku konfiguracyjnym usługi samochodowej. Konfiguracja umożliwiająca włączanie wywołań zwrotnych do grup głośności. Gdy true, klienci otrzymują wywołanie zwrotne za pomocą ICarVolumeGroupEvent do zdarzeń, które mają wpływ na grupy głośności. Gdy ta opcja jest włączona:
  • Zdecydowanie zalecamy, aby dostawcy obsługiwali też IAudioControl#setModuleChangeCallback i IAudioControl#registerGainCallback w przypadku zdarzeń i zmian w sprzęcie audio.
  • Gdy ta sama aplikacja zarejestruje zarówno CarVolumeCallback, jak i CarVolumeGroupEventCallback, wywołania zwrotne indeksu grupy głośności i wyciszenia grupy głośności będą przechodzić przez CarVolumeGroupEventCallback tylko. Dlatego zdecydowanie zalecamy, aby wszystkie aplikacje przeszły na nowy interfejs wywołania zwrotnego, co zapewni spójną wydajność.
  • Wartość domyślna to false. Zalecamy ustawienie tej wartości na true ponieważ interfejsy API obsługujące starsze wywołania zwrotne głośności są wycofywane i wkrótce zostaną całkowicie usunięte.

config_useFixedVolume Zdefiniowana w frameworks/base/core/res/res/values/config.xml. Aby usługa dźwięku w samochodzie mogła zarządzać sterowaniem głośnością, ta opcja musi być ustawiona na true. Gdy flaga config_useFixedVolume nie jest ustawiona lub ma wartość false (wartość domyślna), aplikacje mogą wywoływać interfejsy API zarządzania głośnością AudioManager i zmieniać głośność według typu strumienia w mikserze oprogramowania. Może to być niepożądane ze względu na potencjalny wpływ na inne aplikacje oraz fakt, że tłumienie głośności w mikserze oprogramowania może spowodować, że w sygnale odbieranym przez wzmacniacz sprzętowy będzie dostępnych mniej znaczących bitów. Nowe urządzenia, które nie zostały skonfigurowane i mają ustawioną wartość true, otrzymują zmiany głośności za pomocą interfejsów API głośności i wyciszenia AudioManager.
config_handleVolumeKeysInWindowManager Zdefiniowana w frameworks/base/core/res/res/values/config.xml. Aby usługa dźwięku w samochodzie mogła przechwytywać zdarzenia przycisków głośności, ta opcja musi być ustawiona na true. Jeśli wartość jest ustawiona na false (wartość domyślna), zdarzenia przycisków głośności mogą być przekazywane do aplikacji działającej na pierwszym planie, co może prowadzić do niekorzystnych wyników zarządzania zdarzeniami przycisków głośności poza usługą dźwięku w samochodzie.
audioUseMinMaxActivationVolume Zdefiniowana w pliku konfiguracyjnym usługi samochodowej, aby włączyć minimalną i maksymalną głośność aktywacji. Gdy true, indeks wzmocnienia głośności można dostosować ze względu na zarządzanie minimalną i maksymalną głośnością aktywacji. Gdy false (wartość domyślna), minimalna i maksymalna głośność aktywacji nie mają wpływu.
audioUseFadeManagerConfiguration Zdefiniowana w pliku konfiguracyjnym usługi samochodowej, aby włączyć zachowanie utraty aktywności audio wymuszane przez system. Gdy wartość to true, platforma dźwięku w samochodzie analizuje definicje konfiguracji zanikania dźwięku w samochodzie i stosuje odpowiednią FadeManagerConfiguration podczas wysyłania utraty aktywności audio. Gdy wartość to false (wartość domyślna), system nie wymusza zachowania zanikania, gdy aplikacja traci aktywność audio.

Konfiguracje usługi dźwięku w samochodzie

Przed Androidem 13 konfiguracje usługi samochodowej były zastępowane nakładką konfiguracji produktu (więcej informacji znajdziesz w artykule Dostosowywanie kompilacji za pomocą nakładek zasobów) w przypadku pliku packages/services/Car/service/res/values/config.xml.

PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>

Ścieżka do pliku konfiguracyjnego od <path_to_overlay> do rzeczywistej lokalizacji powinna zawierać packages/services/Car/service/res/values/.

RRO usługi samochodowej

Od Androida 13 AAOS obsługuje nakładki zasobów środowiska wykonawczego. Użyj RRO, aby zmienić wartość konfiguracji dźwięku w samochodzie. Na przykład RRO dla referencyjnego urządzenia cuttlefish w motoryzacji znajdziesz w device/google/cuttlefish/shared/auto/rro_overlay/. Konfiguracja audioUseDynamicRouting jest zastępowana w device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml.

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

Mapa nakładek zasobów znajduje się w device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml:

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

Manifest nakładki zasobów zdefiniowany w device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml zawiera targetPackage ustawiony jako com.android.car.updatable.

Więcej informacji znajdziesz w tych materiałach:

Interfejs API z włączoną funkcją

Metoda zwraca true, jeśli funkcja jest włączona na urządzeniu, w przeciwnym razie false. W interfejsie API CarAudioManager#isAudioFeatureEnabled przekazywany parametr musi być jednym z tych:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING