高解析度音频 Android 10 版本包括以下针对高解析度音频的改进: 浮动:更新了 WAV、FLAC 编解码器和提取器,以支持浮动格式(24+ 位无损精度)。缩混和虚拟环绕音效已更新为浮动格式。MediaPlayer (NuPlayer) 支持使用更新后的精度。 高频:更新了 WAV、FLAC 编解码器和提取器,以支持 192kHz。Android 提供的默认音效已在标准频率下进行了测试,确认其支持 19 2024-09-02 Android > Audio #android #audio
音效 从 Android 11 开始,在选择某个音频设备以将其用于捕获或播放音频时,设备制造商可以自动附加和启用特定的音效。一项重大改进是,完全在音频 HAL(输入设备和输出设备之间的直接连接)之下实现的音频路径上插入的音效现在可以由音效框架控制。 此功能主要面向汽车原始设备制造商 (OEM),但也可用于其他 Android 设备类型。一个示例应用是在通过音频 DSP 直接连接到音响设备时在 FM 调谐 2024-09-02 Android > Audio #android #audio
音频属性 音频播放器支持定义音频系统如何处理指定来源的导向、音量和焦点决策的属性。应用可以将属性附加到音频播放(例如流式传输服务播放的音乐或新电子邮件通知)上,然后将音频源的属性传递给框架,此时音频系统会使用这些属性做出混音决策并将系统状态通知给应用。 注意:应用还可以将属性附加到音频录制(例如在视频录制中截取的音频)上,但此功能不会在公共 API 中提供。 2024-09-02 Android > Audio #android #audio
数据格式 Android 在内部使用多种音频数据格式,并在公共 API、文件格式和硬件抽象层 (HAL) 中公布了其中的一部分。 属性音频数据格式按其属性进行分类: 压缩 未压缩、无损压缩或有损压缩。PCM 是最常见的未压缩音频格式。FLAC 是一种无损压缩格式,而 MP3 和 AAC 是有损压缩格式。 位深 每个音频样本的有效位数量。 容器大小 用于存储或传输样本的位数。通常与位深相同,但是有时会为 2024-09-02 Android > Audio #android #audio
配置预处理效果 对于使用 VOICE_COMMUNICATION 进行捕获,Android 10 版本存在下列要求。 当使用 VOICE_COMMUNICATION 进行捕获时,实现应在捕获路径上提供回声消除器 (AEC)。 如果提供 AEC,它必须可以通过 SDK API 的 AcousticEchoCanceler 进行检测和控制。 Android 平台向 audiofx 软件包(可供开发者访问)中支持的 2024-09-02 Android > Audio > 实现 #android #audio
配置共享库 创建音频政策配置后,您必须将 HAL 实现打包到共享库中,并将其复制到相应位置: 创建一个 device/<company>/<device>/audio 目录以包含您的库的源文件。 创建一个Android.mk文件以构建共享库。确保 Makefile 包含以下行: 1LOCAL_MODULE := audio.primary.<device> 您的库必须 2024-09-02 Android > Audio > 实现 > HIDL #android #audio
配置音频政策 Android 10 版本对音频政策管理器进行了重大重构,有助于更灵活地支持复杂的车载使用情形: 提供了 OEM 专用路由策略。 针对使用相同音量曲线的旧版音频流类型组提供了可自定义音量组。 路由策略由音频政策引擎声明,而不是采用硬编码格式。 音量曲线和组由音频政策引擎管理。 进行了内部重构,目的是为将来分离公共代码和可配置代码做准备,并提供更丰富的音频设备管理功能。例如,在政策规则中使用所有设 2024-09-02 Android > Audio > 实现 > HIDL #android #audio
HIDL 音频 HAL 在 Android 13 及更低版本中,音频 HAL 接口使用 HIDL(在扩展名为 .hal 的 HIDL HAL 文件中)和配置文件的 XSD 架构来定义,如下所示。 图 1. 音频 HAL 接口。 注意:如需了解详情,请参阅音频 HAL 接口定义并查看相应 HAL 版本目录的 *.hal 文件中的注释。如需了解 HIDL 的音频 HAL 目录结构,请参阅音频 HA 2024-09-02 Android > Audio > 实现 > HIDL #android #audio #hal
AIDL 和 HIDL 音频 HAL 比较 从 Android 14 开始,我们鼓励合作伙伴和 SoC 供应商将当前 HIDL HAL 实现替换为 AIDL HAL 实现。 为了方便从 HIDL 音频 HAL 顺利过渡到 AIDL 音频 HAL,本页面上重点介绍了一些关键差异。该页面还显示了音频 HAL 的 AIDL 接口和 HIDL 接口之间的映射。 注意:供应商可以在供应商分区上提供 HIDL 或 AIDL 实 2024-09-02 Android > Audio > 实现 #android #audio #hal
AIDL 音频 HAL 从 Android 14 开始,使用稳定的 AIDL 定义音频 HAL 接口。建议合作伙伴和 SoC 供应商重新实现其音频 HAL 以提供 AIDL 接口。 扩展 libaudiohal 库可以增加对 AIDL HAL 的框架支持。使用 AIDL 实现时,音频政策配置规范会移至 AIDL HAL。进行此更改后,音频政策管理中心 (APM) 会从 HAL 获取配置,而不是从供应商提供的 XML 文件 2024-09-02 Android > Audio > 实现 #android #audio #hal