Flagi konfiguracji audio AAOS, Flagi konfiguracji audio AAOS

System operacyjny Android Automotive (AAOS) wykorzystuje flagi i konfiguracje do włączania różnych funkcji, począwszy od routingu dynamicznego po bardziej ogólne flagi funkcji, takie jak regulacja głośności z serwisu samochodowego. Tutaj opisano aktualne flagi konfiguracyjne AAOS do zarządzania dźwiękiem.

Flaga Zamiar
audioUseDynamicRouting Zdefiniowano w pliku konfiguracyjnym usługi samochodowej, aby włączyć routing AAOS . Konfiguracja musi być ustawiona na true . Kiedy false , routing i większość CarAudioService są wyłączone, a system operacyjny powraca do domyślnego zachowania opisanego w Konfigurowanie zasad audio .
audioUseCarVolumeGroupMuting Zdefiniowano w pliku konfiguracyjnym serwisu samochodowego, aby umożliwić wyciszenie poszczególnych grup głośności. Jeśli ustawione na false (wartość domyślna), wyciszenie poszczególnych grup głośności jest wyłączone. Zamiast tego wyciszenie przełącza wyciszenie główne. Po ustawieniu na true wyciszenie grupy głośności w samochodzie jest włączone i każdą grupę głośności można wyciszyć osobno. Jeśli ma true , w warstwie HAL sterowania dźwiękiem należy zastosować wyciszenie grupy głośności.
audioUseHalDuckingSignals Zdefiniowano w pliku konfiguracyjnym usługi samochodowej, aby umożliwić interfejsowi API IAudioControl#onDevicesToDuckChange informowanie warstwy HAL o konieczności schylenia się. Jeśli ma wartość true (wartość domyślna), interfejs API odbiera sygnały wskazujące, które urządzenia wyjściowe mają zostać pominięte i jakie zastosowania są przedmiotem zainteresowania. Gdy false , interfejs API nie jest wywoływany. Interfejs API nie jest wywoływany, chyba że warstwa HAL sterowania dźwiękiem implementuje wyciszanie.
config_oemCarService Jest to nazwa komponentu usługi dostosowywania OEM, zdefiniowana w pliku konfiguracyjnym serwisu samochodowego. Producenci OEM mogą zdecydować się na wdrożenie tej usługi, aby dostosować działania serwisu samochodowego do różnych zasad. Jeśli producenci OEM zdecydują się na wdrożenie tego komponentu, muszą wdrożyć usługę rozszerzającą OemCarService udostępnianą przez car-lib, a następnie wdrożyć wymagane usługi komponentowe. W szczególności w przypadku usług car audio producenci OEM mogą wdrożyć dowolne podusługi audio w celu zarządzania działaniami audio. Aby uzyskać szczegółowe informacje, zobacz Usługa wtyczki Car Audio . Jeśli nazwa komponentu jest nieprawidłowa, CarService nie połączy się z żadną usługą OEM. Nazwa komponentu nie może być pakietem strony trzeciej. Musi być wstępnie zainstalowany.
audioVolumeAdjustmentContextsVersion

Zdefiniowana w pliku konfiguracyjnym serwisu samochodowego konfiguracja umożliwiająca wybór wersji listy priorytetów kontekstu regulacji głośności.

Wersja 1 zawiera wszystkie konteksty audio, w następującej kolejności:

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

Wersja 2 jest ograniczona do następujących kontekstów, w tej kolejności.

Domyślna wersja to 1 .

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Zdefiniowany w pliku konfiguracyjnym serwisu samochodowego, konfiguracja utrzymująca globalny stan wyciszenia. Gdy true (wartość domyślna), Android przywraca globalny stan wyciszenia podczas uruchamiania. Gdy audioUseCarVolumeGroupMuting ma true , nie ma to wpływu na trwałe zmiany wyciszenia, ponieważ zmiany wyciszenia są oparte na poszczególnych grupach głośności. Wartość domyślna jest ustawiona na true i musi zostać nadpisana, jeśli główne wyciszenie nie powinno być utrwalane dla urządzenia.
audioVolumeKeyEventTimeoutMs

Zdefiniowana w pliku konfiguracyjnym usługi samochodowej, konfiguracja wskazująca limit czasu w milisekundach, podczas którego grupa woluminów samochodu jest uważana za aktywną w przypadku zmian regulacji głośności podczas zdarzeń związanych z klawiszami głośności. Konfiguracja jest używana w następujący sposób:

  • Limit czasu służy do określenia, czy odtwarzanie (głośność dźwięku powiązana z wykorzystaniem dźwięku podczas odtwarzania) może być nadal brane pod uwagę przy automatycznym wyborze głośności po jego zatrzymaniu.
  • Limit czasu jest również używany jako czas przerwy wymagany pomiędzy automatycznymi regulacjami głośności w celu zmiany tego, co reguluje użytkownik.

Wartość domyślna to 3000 milisekund i powinna zostać dostosowana przez producentów OEM w celu dostosowania doświadczenia użytkownika.

audioUseCarVolumeGroupEvent Zdefiniowana w pliku konfiguracyjnym usługi samochodowej, konfiguracja umożliwiająca włączenie zdarzeń wywołania zwrotnego do grup woluminów. Gdy true klienci otrzymują wywołanie zwrotne za pośrednictwem ICarVolumeGroupEvent do zdarzeń mających wpływ na grupy woluminów. Po włączeniu:

  • Zdecydowanie zalecamy, aby dostawcy obsługiwali również IAudioControl#setModuleChangeCallback i IAudioControl#registerGainCallback w przypadku zdarzeń i zmian w sprzęcie audio.
  • Jeżeli zarówno CarVolumeCallback , jak i CarVolumeGroupEventCallback są zarejestrowane w tej samej aplikacji, wywołania zwrotne indeksu grupy woluminów i wyciszenia grupy woluminów będą przechodzić tylko przez CarVolumeGroupEventCallback . Dlatego zdecydowanie zalecamy migrację wszystkich aplikacji do nowego interfejsu wywołania zwrotnego, aby zapewnić stałą wydajność.
  • Wartość domyślna to false . Zalecamy ustawienie tej wartości na true , ponieważ interfejsy API obsługujące starsze wywołania zwrotne woluminów są przestarzałe i wkrótce zostaną całkowicie usunięte.

config_useFixedVolume Zdefiniowane w frameworks/base/core/res/res/values/config.xml . Musi mieć wartość true , aby usługa car audio mogła zarządzać regulacją głośności. Jeśli 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 programowym. 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 programowym może skutkować mniejszą liczbą znaczących bitów dostępnych w sygnale odbieranym przez wzmacniacz sprzętowy. Nowe urządzenia, które nie zostały skonfigurowane i są ustawione na true zmiany głośności odbioru poprzez interfejsy API AudioManager dotyczące głośności i wyciszenia.
config_handleVolumeKeysInWindowManager Zdefiniowane w frameworks/base/core/res/res/values/config.xml , musi być ustawione na true , aby usługa car audio mogła przechwytywać zdarzenia związane z klawiszami głośności. Jeśli ustawiono wartość false (wartość domyślna), zdarzenia związane z klawiszami głośności mogą być przekazywane do aplikacji na pierwszym planie i mogą prowadzić do niekorzystnych wyników w przypadku zarządzania zdarzeniami związanymi z klawiszami głośności poza usługą car audio.

Konfiguracje usług car audio

Przed wersją Androida 13 konfiguracje usług samochodowych były zastępowane nakładką konfiguracji produktu (aby dowiedzieć się więcej, zobacz Dostosowywanie kompilacji za pomocą nakładek zasobów ) dla packages/services/Car/service/res/values/config.xml .

PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>

Lokalizacja pliku konfiguracyjnego od <path_to_overlay> do rzeczywistej lokalizacji powinna obejmować packages/services/Car/service/res/values/ .

Serwis samochodowy RRO

Od wersji Androida 13 AAOS obsługuje nakładki zasobów środowiska wykonawczego . Użyj RRO, aby zmienić wartość konfiguracji car audio. Na przykład zobacz RRO dotyczące cuttlefish samochodowej w device/google/cuttlefish/shared/auto/rro_overlay/ . Konfiguracja audioUseDynamicRouting została zastąpiona w device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml .

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

Mapa nakładki zasobów jest zawarta 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 .

Aby uzyskać więcej informacji, zobacz te zasoby:

API z obsługą funkcji

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

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING