Обзор

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

Хотя система AAOS предоставляет сигналы и механизмы, помогающие автомобилю управлять звуком, в конечном итоге именно транспортное средство принимает решение о том, какие звуки следует воспроизводить для водителя и пассажиров, гарантируя, что критически важные для безопасности звуки и нормативные звуки будут слышны должным образом и без помех.

Поскольку AAOS использует аудиостек Android, сторонним приложениям, воспроизводящим аудио, не нужно делать ничего иного, чем в телефонах. Маршрутизация аудио приложения автоматически управляется AAOS, как описано в разделе Конфигурация аудиополитики .

Поскольку Android управляет мультимедийным интерфейсом автомобиля, внешние источники мультимедиа, такие как радиотюнер, должны быть представлены приложениями, которые могут обрабатывать аудиофокус и ключевые события мультимедиа для источника.

Звуки и потоки Android

Автомобильные аудиосистемы обрабатывают следующие звуки и потоки:

image

Рисунок 1. Схема потокоцентрической архитектуры.

Android управляет звуками, поступающими из приложений Android, контролируя эти приложения и направляя их звуки на выходные устройства в HAL в зависимости от типа звука:

  • Логические потоки , известные как источники в базовой номенклатуре аудио, помечаются атрибутами Audio .

  • Физические потоки , известные как устройства в базовой аудиономенклатуре, не имеют контекстной информации после микширования.

Для надежности внешние звуки (поступающие из независимых источников, таких как сигналы предупреждения о непристегнутых ремнях безопасности) управляются вне Android, ниже HAL или даже в отдельном оборудовании. Разработчики системы должны предоставить микшер, который принимает один или несколько потоков входного звука от Android, а затем объединяет эти потоки подходящим образом с внешними источниками звука, требуемыми для транспортного средства. Android Control HAL предоставляет другой механизм для звуков, генерируемых вне Android, для обратной связи с Android:

  • Запрос аудиофокуса
  • Ограничения усиления или громкости
  • Изменения усиления и громкости

Реализация аудио HAL и внешний микшер отвечают за обеспечение слышимости внешних звуков, важных для безопасности, а также за микширование потоков, предоставляемых Android, и их маршрутизацию на подходящие динамики.

Звуки андроида

Приложения могут иметь один или несколько проигрывателей, которые взаимодействуют через стандартные API Android (например, AudioManager для управления фокусом или MediaPlayer для потоковой передачи) для передачи одного или нескольких логических потоков аудиоданных. Эти данные могут быть одноканальными моно или объемным звуком 7.1, но маршрутизируются и обрабатываются как один источник. Поток приложения связан с AudioAttributes , которые дают системе подсказки о том, как должен быть выражен звук.

Логические потоки отправляются через AudioService и направляются в один (и только один) из доступных физических выходных потоков, каждый из которых является выходом микшера в AudioFlinger. После того, как аудиоатрибуты были смешаны в физический поток, они больше не доступны.

Каждый физический поток затем доставляется в Audio HAL для рендеринга на оборудовании. В автомобильных приложениях оборудование для рендеринга может быть локальными кодеками (аналогично мобильным устройствам) или удаленным процессором в физической сети автомобиля. В любом случае, работа реализации Audio HAL заключается в доставке фактических данных сэмпла и превращении их в слышимые.

Внешние потоки

Звуковые потоки, которые не должны направляться через Android (из-за сертификации или соображений синхронизации), могут быть отправлены напрямую на внешний микшер. Начиная с Android 11, HAL теперь может запрашивать фокус для этих внешних звуков, чтобы информировать Android, чтобы он мог предпринять соответствующие действия, такие как приостановка медиа или предотвращение получения фокуса другими.

Если внешние потоки являются источниками медиа, которые должны взаимодействовать со звуковой средой, создаваемой Android (например, останавливать воспроизведение MP3 при включении внешнего тюнера), эти внешние потоки должны быть представлены приложением Android. Такое приложение будет запрашивать аудиофокус от имени источника медиа вместо HAL и будет реагировать на уведомления о фокусе, запуская и останавливая внешний источник по мере необходимости, чтобы соответствовать политике фокуса Android.

Приложение также отвечает за обработку ключевых событий медиа, таких как воспроизведение и пауза. Одним из предлагаемых механизмов управления такими внешними устройствами является HwAudioSource . Чтобы узнать больше, см. раздел Подключение устройства ввода в AAOS .

Устройства вывода

На уровне Audio HAL тип устройства AUDIO_DEVICE_OUT_BUS обеспечивает универсальное выходное устройство для использования в автомобильных аудиосистемах. Устройство шины поддерживает адресуемые порты (где каждый порт является конечной точкой для физического потока) и, как ожидается, будет единственным поддерживаемым типом выходного устройства в автомобиле.

Реализация системы может использовать один порт шины для всех звуков Android, в этом случае Android смешивает все вместе и доставляет это как один поток. В качестве альтернативы HAL может предоставить один порт шины для каждого CarAudioContext , чтобы разрешить одновременную доставку любого типа звука. Это позволяет реализации HAL смешивать и приглушать различные звуки по желанию.

Назначение аудиоконтекстов выходным устройствам осуществляется через файл car_audio_configuration.xml . Чтобы узнать больше, см. Конфигурация аудиополитики .

,

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

Хотя система AAOS предоставляет сигналы и механизмы, помогающие автомобилю управлять звуком, в конечном итоге именно транспортное средство принимает решение о том, какие звуки следует воспроизводить для водителя и пассажиров, гарантируя, что критически важные для безопасности звуки и нормативные звуки будут слышны должным образом и без помех.

Поскольку AAOS использует аудиостек Android, сторонним приложениям, воспроизводящим аудио, не нужно делать ничего иного, чем в телефонах. Маршрутизация аудио приложения автоматически управляется AAOS, как описано в разделе Конфигурация аудиополитики .

Поскольку Android управляет мультимедийным интерфейсом автомобиля, внешние источники мультимедиа, такие как радиотюнер, должны быть представлены приложениями, которые могут обрабатывать аудиофокус и ключевые события мультимедиа для источника.

Звуки и потоки Android

Автомобильные аудиосистемы обрабатывают следующие звуки и потоки:

image

Рисунок 1. Схема потокоцентрической архитектуры.

Android управляет звуками, поступающими из приложений Android, контролируя эти приложения и направляя их звуки на выходные устройства в HAL в зависимости от типа звука:

  • Логические потоки , известные как источники в базовой номенклатуре аудио, помечаются атрибутами Audio .

  • Физические потоки , известные как устройства в базовой аудиономенклатуре, не имеют контекстной информации после микширования.

Для надежности внешние звуки (поступающие из независимых источников, таких как сигналы предупреждения о непристегнутых ремнях безопасности) управляются вне Android, ниже HAL или даже в отдельном оборудовании. Разработчики системы должны предоставить микшер, который принимает один или несколько потоков входного звука от Android, а затем объединяет эти потоки подходящим образом с внешними источниками звука, требуемыми для транспортного средства. Android Control HAL предоставляет другой механизм для звуков, генерируемых вне Android, для обратной связи с Android:

  • Запрос аудиофокуса
  • Ограничения усиления или громкости
  • Изменения усиления и громкости

Реализация аудио HAL и внешний микшер отвечают за обеспечение слышимости внешних звуков, важных для безопасности, а также за микширование потоков, предоставляемых Android, и их маршрутизацию на подходящие динамики.

Звуки андроида

Приложения могут иметь один или несколько проигрывателей, которые взаимодействуют через стандартные API Android (например, AudioManager для управления фокусом или MediaPlayer для потоковой передачи) для передачи одного или нескольких логических потоков аудиоданных. Эти данные могут быть одноканальными моно или объемным звуком 7.1, но маршрутизируются и обрабатываются как один источник. Поток приложения связан с AudioAttributes , которые дают системе подсказки о том, как должен быть выражен звук.

Логические потоки отправляются через AudioService и направляются в один (и только один) из доступных физических выходных потоков, каждый из которых является выходом микшера в AudioFlinger. После того, как аудиоатрибуты были смешаны в физический поток, они больше не доступны.

Каждый физический поток затем доставляется в Audio HAL для рендеринга на оборудовании. В автомобильных приложениях оборудование для рендеринга может быть локальными кодеками (аналогично мобильным устройствам) или удаленным процессором в физической сети автомобиля. В любом случае, работа реализации Audio HAL заключается в доставке фактических данных сэмпла и превращении их в слышимые.

Внешние потоки

Звуковые потоки, которые не должны направляться через Android (из-за сертификации или соображений синхронизации), могут быть отправлены напрямую на внешний микшер. Начиная с Android 11, HAL теперь может запрашивать фокус для этих внешних звуков, чтобы информировать Android, чтобы он мог предпринять соответствующие действия, такие как приостановка медиа или предотвращение получения фокуса другими.

Если внешние потоки являются источниками медиа, которые должны взаимодействовать со звуковой средой, создаваемой Android (например, останавливать воспроизведение MP3 при включении внешнего тюнера), эти внешние потоки должны быть представлены приложением Android. Такое приложение будет запрашивать аудиофокус от имени источника медиа вместо HAL и будет реагировать на уведомления о фокусе, запуская и останавливая внешний источник по мере необходимости, чтобы соответствовать политике фокуса Android.

Приложение также отвечает за обработку ключевых событий медиа, таких как воспроизведение и пауза. Одним из предлагаемых механизмов управления такими внешними устройствами является HwAudioSource . Чтобы узнать больше, см. раздел Подключение устройства ввода в AAOS .

Устройства вывода

На уровне Audio HAL тип устройства AUDIO_DEVICE_OUT_BUS обеспечивает универсальное выходное устройство для использования в автомобильных аудиосистемах. Устройство шины поддерживает адресуемые порты (где каждый порт является конечной точкой для физического потока) и, как ожидается, будет единственным поддерживаемым типом выходного устройства в автомобиле.

Реализация системы может использовать один порт шины для всех звуков Android, в этом случае Android смешивает все вместе и доставляет это как один поток. В качестве альтернативы HAL может предоставить один порт шины для каждого CarAudioContext , чтобы разрешить одновременную доставку любого типа звука. Это позволяет реализации HAL смешивать и приглушать различные звуки по желанию.

Назначение аудиоконтекстов выходным устройствам осуществляется через файл car_audio_configuration.xml . Чтобы узнать больше, см. Конфигурация аудиополитики .