Android 的音频硬件抽象层 (HAL) 将更高级别的音频专用框架 API 连接到 android.media
底层音频驱动程序和硬件。音频 HAL 定义了音频服务调用的标准接口。必须实现音频 HAL,音频硬件才能正常运行。
本页面概述了音频 HAL,并详细介绍了其 API 和实现要求。
音频 HAL 接口
从 Android 14 开始,音频 HAL 接口使用 AIDL 定义。对于之前的版本,音频 HAL 接口使用 HIDL 定义。建议合作伙伴和 SoC 供应商重新实现其音频 HAL 以提供 AIDL 接口。
Android 14 及更高版本中新增功能的新 HAL API 仅在使用 AIDL 接口的实现中受支持。从 Android 14 开始,HIDL 实现中不再添加新的 API。
切换到 AIDL 并弃用和移除对之前主要音频 HAL 版本的支持,可释放设备上的磁盘空间和 RAM。这可带来更流畅的用户体验,并为最终用户提供更新的用户可见功能。
如需详细了解 AIDL 和 HIDL 音频 HAL 之间的差异,请参阅AIDL 和 HIDL 音频 HAL 比较。
音频 HAL API
音频 HAL 包含以下 API
- Core HAL 是 AudioFlinger 用于播放音频和控制音频路由的主要 API。
Effects HAL API 由效果框架用于控制音频效果。您还可以通过 Effects HAL API 配置预处理效果,例如自动增益控制和噪声抑制。
Common HAL API 是 Core 和 Effects HAL API 使用的通用数据类型库。Common HAL 没有接口,也没有关联的 VTS 测试,因为它仅定义数据结构。
如需分别了解与 AIDL 和 HIDL 相关的具体详情,请参阅AIDL 音频 HAL 和 HIDL 音频 HAL。
要求
除了实现音频 HAL 并创建音频政策配置文件之外,您还必须遵守以下 HAL 要求
如果一个输入配置文件支持声音触发器捕获(从热词 DSP 缓冲区捕获),则实现必须支持此配置文件上的活跃数据流数量,该数量与声音触发器 HAL 支持的并发会话数量相对应。
语音通话 TX 并发和从应用处理器捕获并发,如并发捕获页面中所述。