Флаги AAOS конфигурации звука, Флаги AAOS конфигурации звука

Android Automotive OS (AAOS) использует флаги и конфигурации для включения различных функций, начиная с динамической маршрутизации и заканчивая более общими флагами функций, такими как регулировка громкости в автосервисе. Здесь описаны текущие флаги конфигурации AAOS для управления звуком.

Флаг Цель
audioUseDynamicRouting В файле конфигурации автосервиса определено включение маршрутизации AAOS . В конфигурации должно быть установлено значение true . Если false , маршрутизация и большая часть CarAudioService отключаются, и ОС возвращается к поведению по умолчанию, описанному в разделе Настройка политик аудио .
audioUseCarVolumeGroupMuting Определено в файле конфигурации автосервиса для включения отключения звука отдельных групп громкости. Если установлено значение false (значение по умолчанию), отключение звука отдельных групп томов отключается. Вместо этого приглушение переключает общее отключение звука. Если установлено значение true , включено отключение звука в группе громкости автомобиля, и звук каждой отдельной группы громкости можно отключить отдельно. Если true , приглушение группы громкости должно быть реализовано в HAL управления звуком .
audioUseHalDuckingSignals Определено в файле конфигурации автосервиса, чтобы API IAudioControl#onDevicesToDuckChange сообщал HAL, когда нужно пригнуться. Если true (значение по умолчанию), API получает сигналы, указывающие, какие устройства вывода следует отключить и какие способы использования удерживают фокус. Если false , API не вызывается. API не вызывается, если HAL управления звуком не реализует приглушение.
config_oemCarService Определенное в файле конфигурации автосервиса, это имя компонента OEM-сервиса настройки. OEM-производители могут реализовать эту услугу, чтобы настроить действия автосервиса для различных политик. Если OEM-производители решат реализовать этот компонент, они должны реализовать службу для расширения OemCarService предоставляемую car-lib, а затем реализовать необходимые службы компонента. В частности, что касается автомобильной аудиосистемы, OEM-производители могут реализовать любую из дополнительных аудиослужб для управления звуковыми действиями. Подробную информацию см. в разделе Служба плагинов автомобильной аудиосистемы . Если имя компонента неверно, CarService не сможет подключиться ни к одной OEM-службе. Имя компонента не может быть сторонним пакетом. Он должен быть предварительно установлен.
audioVolumeAdjustmentContextsVersion

Определяется в файле конфигурации автосервиса, конфигурация для выбора версии списка приоритетов контекста регулировки громкости.

Версия 1 включает все аудиоконтексты в следующем порядке:

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

Версия 2 ограничена следующими контекстами в указанном порядке.

Версия по умолчанию — 1 .

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Определено в файле конфигурации автосервиса, конфигурация для сохранения глобального состояния отключения звука. Если true (значение по умолчанию), Android восстанавливает глобальное состояние отключения звука при загрузке. Если audioUseCarVolumeGroupMuting имеет true , это не влияет на сохранение изменений отключения звука, поскольку изменения отключения звука основаны на отдельных группах громкости. Значение по умолчанию установлено в true и должно быть перезаписано, если не требуется сохранение основного отключения звука для устройства.
audioVolumeKeyEventTimeoutMs

Определенная в файле конфигурации автосервиса конфигурация для указания тайм-аута в миллисекундах, в течение которого группа громкости автомобиля считается активной для изменений регулировки громкости во время событий клавиши громкости. Конфигурация используется следующим образом:

  • Тайм-аут используется для определения того, можно ли по-прежнему рассматривать воспроизведение (громкость звука, связанную с использованием звука при воспроизведении) для автоматического выбора громкости после остановки воспроизведения.
  • Тайм-аут также используется в качестве продолжительности паузы, необходимой между автоматической регулировкой громкости, чтобы изменить то, что настраивает пользователь.

Значение по умолчанию составляет 3000 миллисекунд и должно быть скорректировано OEM-производителями для адаптации пользовательского опыта.

audioUseCarVolumeGroupEvent Определенная в файле конфигурации автосервиса конфигурация для включения событий обратного вызова в группы томов. Если true , клиенты получают обратный вызов через ICarVolumeGroupEvent для событий, влияющих на группы томов. Когда включено:

  • Мы настоятельно рекомендуем поставщикам также поддерживать IAudioControl#setModuleChangeCallback и IAudioControl#registerGainCallback для событий и изменений в аудиооборудовании.
  • Если и CarVolumeCallback , и CarVolumeGroupEventCallback зарегистрированы одним и тем же приложением, обратные вызовы индекса группы томов и отключения звука группы томов должны проходить только через CarVolumeGroupEventCallback . Поэтому мы настоятельно рекомендуем всем приложениям перейти на новый интерфейс обратного вызова, чтобы обеспечить стабильную производительность.
  • Значение по умолчанию — false . Мы рекомендуем установить для этого параметра значение true поскольку API-интерфейсы для поддержки обратных вызовов устаревших томов устарели и скоро будут полностью удалены.

config_useFixedVolume Определено в frameworks/base/core/res/res/values/config.xml . Должно быть установлено значение true , чтобы разрешить автозвуковой службе управлять громкостью. Если флаг config_useFixedVolume не установлен или для него установлено значение false (значение по умолчанию), приложения могут вызывать API управления громкостью AudioManager и изменять громкость по типу потока в программном микшере. Это может быть нежелательно из-за потенциального влияния на другие приложения и того факта, что ослабление громкости в программном микшере может привести к уменьшению количества значащих битов, доступных в сигнале при приеме на аппаратный усилитель. Новые устройства, которые не были настроены и для которых установлено true получают изменения громкости через API громкости и отключения звука AudioManager .
config_handleVolumeKeysInWindowManager Определено в frameworks/base/core/res/res/values/config.xml и должно быть установлено в true , чтобы служба автомобильной аудиосистемы могла перехватывать события клавиш громкости. Если установлено значение false (значение по умолчанию), события клавиши громкости могут пересылаться в приложение переднего плана и могут привести к неблагоприятным результатам при управлении событиями клавиши громкости за пределами службы автомобильной аудиосистемы.

Конфигурации автозвука

До версии Android 13 конфигурации автосервиса перезаписывались наложением конфигурации продукта (более подробную информацию см. в разделе Настройка сборки с наложением ресурсов ) для файла packages/services/Car/service/res/values/config.xml .

PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>

Расположение файла конфигурации от <path_to_overlay> до фактического местоположения должно включать packages/services/Car/service/res/values/ .

Автосервис РРО

Начиная с Android 13, AAOS поддерживает наложения ресурсов среды выполнения . Используйте RRO, чтобы изменить значение конфигурации автомобильной аудиосистемы. Например, см. RRO для ссылки на автомобильную cuttlefish в device/google/cuttlefish/shared/auto/rro_overlay/ . Конфигурация audioUseDynamicRouting переопределяется в файле device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml .

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

Карта наложения ресурсов содержится в device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml :

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

Манифест наложения ресурса, определенный в device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml содержит targetPackage установленный как com.android.car.updatable .

Дополнительные сведения см. на этих ресурсах:

API с поддержкой функций

Метод возвращает true если эта функция включена на устройстве, в противном случае — false . В API CarAudioManager#isAudioFeatureEnabled передаваемый параметр должен быть одним из:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING