Flagi AAOS konfiguracji dźwięku

Android Automotive OS (AAOS) używa flag i konfiguracji, aby włączać różne funkcje, począwszy od dynamicznego wyznaczania trasy po bardziej ogólne flagi funkcji, takie jak sterowanie głośnością z poziomu usługi samochodowej. Aktualne flagi konfiguracji AAOS do zarządzania dźwiękiem opisano tutaj.

Zgłoś Cel
audioUseDynamicRouting Zdefiniowane w pliku konfiguracyjnym usługi samochodowej, aby włączyć routing AAOS. Konfiguracja musi mieć wartość true. Gdy false, routing i większość CarAudioService są wyłączone, system operacyjny wraca do domyślnego zachowania opisanego w artykule Konfigurowanie zasad dotyczących dźwięku.
useCoreAudioRouting Zdefiniowane w pliku konfiguracyjnym usługi samochodowej, aby włączyć zarządzanie routingiem dźwięku podstawowego AAOS. Gdy wartość jest ustawiona na true, usługa audio w samochodzie korzysta z definicji konfiguracji ustawionych za pomocą silnika zasad audio z możliwością konfiguracji. Jeśli wartość to false, zarządzanie routingiem wraca do korzystania z definicji dynamicznej mieszanki zasad audio usługi audio w samochodzie skonfigurowanej za pomocą audioUseDynamicRouting.
useCoreAudioVolume Zdefiniowane w pliku konfiguracyjnym usługi samochodowej, aby włączyć zarządzanie głośnością podstawowego dźwięku AAOS. Gdy wartość jest ustawiona na true, usługa audio w samochodzie korzysta z definicji grup głośności skonfigurowanych za pomocą silnika zasad audio z możliwością konfiguracji. Jeśli wartość jest ustawiona na false, zarządzanie głośnością wraca do domyślnej definicji grupy głośności usługi audio w samochodzie skonfigurowanej za pomocą audioUseDynamicRouting.
audioUseCarVolumeGroupMuting Zdefiniowane w pliku konfiguracyjnym usługi samochodowej, aby umożliwić wyciszanie poszczególnych grup głośności. Jeśli ta opcja ma wartość false (domyślną), wyciszanie poszczególnych grup głośności jest wyłączone. Zamiast tego wyciszanie przełącza wyciszenie główne. Gdy ta opcja 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 true, wyciszanie grupy głośności musi być zaimplementowane w warstwie HAL sterowania dźwiękiem.
audioUseHalDuckingSignals Zdefiniowany w pliku konfiguracyjnym usługi samochodowej, aby umożliwić interfejsowi IAudioControl#onDevicesToDuckChange API informowanie HAL o tym, kiedy ma się wyciszyć. 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ą być aktywne. Gdy false, interfejs API nie jest wywoływany. Wywołanie interfejsu API następuje tylko wtedy, gdy HAL sterowania dźwiękiem implementuje wyciszanie.
config_oemCarService Zdefiniowana w pliku konfiguracyjnym usługi samochodowej nazwa komponentu usługi dostosowywania OEM. Producenci OEM mogą wdrożyć tę usługę, aby dostosowywać działania związane z serwisowaniem samochodów do różnych zasad. Jeśli producenci OEM zdecydują się na wdrożenie tego komponentu, muszą zaimplementować usługę rozszerzającą interfejs OemCarService udostępniany przez bibliotekę car-lib, a następnie zaimplementować wymagane usługi komponentów. W przypadku usługi audio w samochodzie producenci OEM mogą wdrożyć dowolną z usług podrzędnych audio, aby zarządzać działaniem audio. Więcej informacji znajdziesz w artykule Car Audio Plugin Service. Jeśli nazwa komponentu jest nieprawidłowa, CarService nie połączy się z żadną usługą OEM. Nazwa komponentu nie może być pakietem innej firmy. Musi być wstępnie zainstalowana.
audioVolumeAdjustmentContextsVersion

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

Wersja 1 zawiera wszystkie konteksty audio 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 podanej kolejności:

Wersja domyślna to 1.

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Zdefiniowana w pliku konfiguracyjnym usługi samochodowej konfiguracja, która ma zachowywać globalny stan wyciszenia. Gdy wartość wynosi true (wartość domyślna), Android przywraca globalny stan wyciszenia podczas uruchamiania. Jeśli wartość audioUseCarVolumeGroupMuting to 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 to true. Musi ona zostać zastąpiona, jeśli wyciszenie główne nie powinno być zapisywane na urządzeniu.
audioVolumeKeyEventTimeoutMs

Zdefiniowana w pliku konfiguracyjnym usługi samochodowej konfiguracja określająca limit czasu w milisekundach, przez jaki grupa głośności w samochodzie jest uznawana za aktywną w przypadku zmian sterowania głośnością podczas zdarzeń związanych z klawiszami głośności. Konfiguracja jest używana w ten sposób:

  • Limit czasu służy do określania, 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 trwania pauzy wymaganej między automatycznymi korektami głośności, aby zmienić to, co użytkownik dostosowuje.

Domyślna wartość to 3000 milisekund. Producenci OEM powinni ją dostosować, aby zapewnić użytkownikom odpowiednie wrażenia.

audioUseCarVolumeGroupEvent Zdefiniowana w pliku konfiguracyjnym usługi samochodowej konfiguracja umożliwiająca przekazywanie zdarzeń wywołania zwrotnego do grup głośności. Gdy true, klienci otrzymują wywołanie zwrotne przez ICarVolumeGroupEvent w przypadku zdarzeń, które mają wpływ na grupy woluminów. Jeśli jest włączona:
  • Zdecydowanie zalecamy, aby dostawcy obsługiwali też IAudioControl#setModuleChangeCallback i IAudioControl#registerGainCallback w przypadku zdarzeń i zmian w sprzęcie audio.
  • Jeśli obie funkcje CarVolumeCallbackCarVolumeGroupEventCallback są zarejestrowane przez tę samą aplikację, wywołania zwrotne indeksu grupy głośności i wyciszenia grupy głośności będą przechodzić tylko przez funkcję CarVolumeGroupEventCallback. Dlatego zdecydowanie zalecamy, aby wszystkie aplikacje przeszły na nowy interfejs wywołania zwrotnego, co zapewni spójną skuteczność.
  • Wartość domyślna to false. Zalecamy ustawienie tej wartości na true, ponieważ interfejsy API obsługujące starsze wywołania zwrotne dotyczące głośności są wycofane i wkrótce zostaną całkowicie usunięte.

config_useFixedVolume Zdefiniowano w frameworks/base/core/res/res/values/config.xml. Musi mieć wartość true, aby usługa audio w samochodzie 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 oprogramowania. Może to być niepożądane ze względu na potencjalny wpływ na inne aplikacje i fakt, że tłumienie głośności w mikserze programowym może skutkować mniejszą liczbą znaczących bitów dostępnych w sygnałach odbieranych przez wzmacniacz sprzętowy. Nowe urządzenia, które nie zostały skonfigurowane i są ustawione na true odbieranie zmian głośnościtrue za pomocą interfejsów AudioManager volume i mute API.
config_handleVolumeKeysInWindowManager Zdefiniowana w frameworks/base/core/res/res/values/config.xml, musi mieć wartość true, aby usługa audio w samochodzie mogła przechwytywać zdarzenia klawiszy głośności. Jeśli ta wartość jest ustawiona na false (wartość domyślna), zdarzenia klawiszy głośności mogą być przekazywane do aplikacji na pierwszym planie i prowadzić do niekorzystnych wyników zarządzania zdarzeniami klawiszy głośności poza usługą audio w samochodzie.
audioUseMinMaxActivationVolume Zdefiniowane w pliku konfiguracyjnym usługi samochodowej, aby włączyć minimalną i maksymalną liczbę aktywacji. Gdy true, indeks wzrostu 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 liczba aktywacji nie mają wpływu.
audioUseFadeManagerConfiguration Zdefiniowane w pliku konfiguracji usługi samochodowej, aby włączyć zachowanie związane z utratą fokusu dźwięku wymuszane przez system. Gdy true, framework audio w samochodzie analizuje definicje konfiguracji zanikania dźwięku w samochodzie i stosuje odpowiednie FadeManagerConfiguration podczas wysyłania utraty ostrości dźwięku. Gdy wartość wynosi false (wartość domyślna), system nie wymusza wyciszania, gdy aplikacja traci fokus audio.

Konfiguracje usługi audio w samochodzie

Przed Androidem 13 konfiguracje usług samochodowych 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>

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

Kasy rejestrujące w serwisach samochodowych

Od Androida 13 AAOS obsługuje nakładki zasobów w czasie działania. Użyj RRO, aby zmienić wartość konfiguracji audio w samochodzie. Na przykład zobacz RRO dla motoryzacji cuttlefishdevice/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ładki 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>

Plik manifestu nakładki zasobu 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 wartość true, jeśli funkcja jest włączona na urządzeniu, w przeciwnym razie zwraca wartość false. W interfejsie CarAudioManager#isAudioFeatureEnabled API przekazywany parametr musi mieć jedną z tych wartości:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING