业务背景
针对安卓手机原生播放器音质差、SRC重采样底噪大、缺少专业调音的痛点,自研本地无损音乐播放器,仅支持本地歌曲文件播放,无在线音乐资源,规避版权风险,主打HiFi无损音质输出。
核心功能模块
1. 解码层:集成FFmpeg多格式无损解码,支持MP3/FLAC/WAV/DSD音频文件,区分硬解MediaCodec与自研软解双链路;
2. 音频输出:Oboe底层音频流,支持USB DAC独占直通模式,绕过系统强制48kHz SRC,原生44.1kHz无损输出,消除转换底噪;
3. 专业DSP音效引擎(C++ Native实现):20段参量PEQ均衡器,自定义Q值0.4~3.0可调;内置高通HPF滤波、全局峰值限制器、立体声M/S拓宽、Haas声场3D丽音、微量短混响,解决人声尖锐齿音、低音单薄、乐器分离度差问题;
4. UI交互:Compose自定义滑动进度条、唱片旋转联动控件、20段EQ独立调节滑块,底部导航多页面切换,独立音效设置弹窗;
5. 配套工具:本地MP3 ID3标签自动识别、批量修正歌手/歌曲名,音频频谱可视化绿黄红电平监测,熄屏后台稳定播放无卡顿;
业务流程
本地扫描读取手机存储音频文件→标签解析分类列表→解码输出PCM原始音频→Native DSP全套音效处理→Oboe低延迟音频流输出至耳机/USB DAC,完整实现高保真离线音乐播放。
本项目基于Android Compose + C++ Native双端架构分层实现,整体分为上层UI交互层、中间业务逻辑层、底层音频DSP处理三层,全程自主开发无第三方成品播放器封装。
1. UI交互层:使用Jetpack Compose构建全页面布局,自定义线性EQ滑块、唱片旋转联动进度控件、全屏独立音效弹窗;底部四页固定导航,按钮触发第五页独立调音页面,粒子特效采用Native内存池渲染,切换页面自动休眠粒子逻辑降低功耗;音频实时频谱可视化渲染,绿/黄/红三色峰值电平实时反馈信号削波状态。
2. 业务逻辑层:Kotlin实现本地音频文件扫描、ID3标签解析、歌曲分类;设计双播放引擎切换逻辑,普通耳机模式使用MediaCodec系统解码适配兼容,USB DAC独占模式切换自研Oboe音频链路;音频焦点监听,蓝牙插拔自动切换音频路由,熄屏持有唤醒锁解决播放卡顿;音效参数持久化存储,多套EQ预设一键切换。
3. 底层DSP核心层(C++ JNI实现)
- 解码模块:集成FFmpeg软解,兼容MP3、FLAC、WAV、DSD全格式无损音频;
- SRC重采样:自研Kaiser窗Sinc-FIR重采样,规避系统SRC转换带来的底噪,支持44.1kHz原生直通输出;
- 20段参量PEQ滤波器:每段独立Q值0.4~3.0可调,高低频分离优化人声、鼓、钢琴乐器,搭配窄带Notch陷波消除人声齿音尖锐杂音;
- 完整3D声场模块:M/S立体声拓宽、8μs Haas左右微延迟、15ms短混响,复刻立体环绕丽音效果;
- 保护模块:可调高通HPF、全局音频压制、峰值限制器,限定输出幅值防止爆音、削波失真;
4. 输出适配层:Oboe低延迟音频流,支持Exclusive独占模式绕过安卓系统混音,适配外置USB DAC无损DSD直通输出;区分单声道自动复制双通道立体声,避免单声道音频数据异常。
整体项目仅读取本地存储音频文件,无在线曲库、无网络抓取音乐资源,完全合规无版权风险,适配全系列安卓机型,后台长时间播放稳定无杂音、卡顿、无声bug。