Аппаратно-зависимый уровень (HAL) Android для работы с аудио соединяет API фреймворка более высокого уровня, относящиеся к аудио, в android.media с базовыми аудиодрайверами и оборудованием. Уровень абстракции аудиооборудования (HAL) определяет стандартный интерфейс, к которому обращаются аудиосервисы. Для корректной работы аудиооборудования необходимо реализовать Audio HAL.
На этой странице представлен обзор Audio HAL, а также подробные сведения о его API и требованиях к реализации.
Интерфейс Audio HAL
В Android 14 и более поздних версий интерфейс Audio HAL определяется с помощью AIDL. Для более ранних версий интерфейс Audio HAL определяется с помощью HIDL. Партнерам и поставщикам SoC рекомендуется переопределить HAL аудио, чтобы предоставить интерфейс AIDL.
Новые API HAL для функций, добавленных в Android 14 и более поздних версиях, поддерживаются только при реализации интерфейса AIDL. В Android 14 и более поздних версиях в реализацию HIDL не добавляются новые API.
Переход на AIDL, а также прекращение поддержки и удаление предыдущих основных версий Audio HAL освобождает место на диске и ОЗУ устройств. Это позволяет улучшить взаимодействие с пользователем и добавить новые функции.
Подробнее о различиях между AIDL и HIDL Audio HAL…
Audio HAL API
В Audio HAL есть следующие API:
- Core HAL – это основной API, который используется AudioFlinger для воспроизведения аудио и управления маршрутизацией аудио.
API HAL эффектов используется фреймворком эффектов для управления аудиоэффектами. Вы также можете настроить эффекты предварительной обработки, такие как автоматическая регулировка усиления и шумоподавление, с помощью API HAL эффектов.
Common HAL API – это библиотека распространенных типов данных, используемых Core HAL API и Effects HAL API. У общего уровня абстракции оборудования нет интерфейсов и связанных с ним тестов VTS, поскольку он определяет только структуры данных.
Подробную информацию об AIDL и HIDL можно найти в разделах AIDL Audio HAL и HIDL Audio HAL.
Требования
Помимо реализации Audio HAL и создания файла конфигурации правил аудио, необходимо соблюдать следующие требования HAL:
Если захват для триггера звука (захват из буфера DSP ключевого слова) поддерживается одним профилем ввода, реализация должна поддерживать количество активных потоков в этом профиле, соответствующее количеству одновременных сеансов, поддерживаемых HAL триггера звука.
Одновременная передача голосового вызова и запись с процессора приложения, как описано на странице Одновременная запись.