Poweramp AAudio 与 Hi-Res Output 全解析 —— 绕过系统混音器拿到真 Hi-Res
核心问题:Android 的音频管线
要理解 Hi-Res,先理解 Android 的音频输出层级(从应用到扬声器):
[Poweramp App]
↓
[Android Audio HAL / AudioFlinger 混音器]
↓
[硬件 Codec / DAC]
↓
[耳机/扬声器]
问题出在中间的 AudioFlinger 混音器——Android 默认会把所有音频流降到统一的采样率(通常是 44.1kHz 或 48kHz),再送给硬件。即使你的文件是 24/192,经过这一层也会被降采样。
Hi-Res Output:绕过混音器
从 Android 8.0 开始,Google 允许应用请求"Hi-Res Output"——让音频流直接送到硬件,跳过混音器。Poweramp 是最早支持这个特性的播放器之一。
开启 Poweramp 的 Hi-Res Output 后,链路变成:
[Poweramp App] → 直接送硬件(24/192 原码)→ 硬件 DAC → 耳机
AAudio vs OpenSL ES
Poweramp 有两条底层 API 可以选:
| API | 说明 | 推荐 |
|---|---|---|
| AAudio(Android 8.0+) | Google 新推出的高性能音频 API,延迟低、路径清晰 | ✅ 大多数设备选这个 |
| OpenSL ES(Android 5.0+) | 旧 API,部分老设备上兼容性更好 | 只有 AAudio 不工作时才选 |
怎么选
- Android 10+:AAudio Hi-Res Output 基本是必选项
- Android 8/9:测试 AAudio 是否能正确输出 Hi-Res,不行就切 OpenSL ES
- 某些厂商定制 ROM:AAudio 可能被阉割,OpenSL ES 反而更稳定
怎么确认 Hi-Res 真的生效了
打开 Poweramp → 设置 → 音频 → 输出 → 你会看到当前输出设备的实际参数:
- 采样率(如 192000)
- 位深(如 24)
- 是否为 Exclusive Mode(独占模式)
如果显示 "44100 / 16-bit",说明你的设备或当前输出不支持 Hi-Res,Poweramp 已经自动降级了。
常见限制
Hi-Res 能不能开起来,取决于:
| 限制因素 | 说明 |
|---|---|
| 手机硬件 | 很多中低端手机的硬件 DAC 只支持到 48kHz |
| Android 版本 | Android 8.0+ 才支持 Hi-Res Output |
| 厂商 ROM | 小米/OPPO/vivo 的某些机型阉割了这个能力 |
| 蓝牙耳机 | 蓝牙本身的编码(SBC/AAC/LDAC)才是瓶颈,Hi-Res Output 对蓝牙的意义有限 |
| USB DAC | 外接 DAC 时 Poweramp 的 USB Exclusive Driver 才是真正的杀手锏 |
建议配置
AAudio / Hi-Res Output:开启
USB DAC:用 USB Exclusive Driver(见下一页)
蓝牙耳机:AAudio + Hi-Res Output 都开,让蓝牙编码自己处理
系统音量:保持 50% 以上(低于 50% 时 Hi-Res 管线会自动降级)