音频三路混音播放器
源码路径:example/multimedia/audio/mixer
支持的平台
当前在以下平台测试验证通过
sf32lb52-lcd_n16r8
sf32lb56-lcd_n16r12n1
概述
本例程演示将 3 路本地音频文件同时解码并混音输出。程序启动后会自动挂载文件系统,随后打开根目录下的 3 个音频文件并进行混音播放:
/1.mp3
/2.mp3
/3.wav
混音链路为:
每路独立解码(MP3 使用 libhelix,WAV 支持 PCM/float,PCM 支持 8bit/16bit)。
若采样率不是 48kHz,则先重采样到 48kHz。
3 路单声道 PCM 按样本求和后取均值输出。
例程的使用
硬件需求
运行该例程前,需要准备:
一块本例程支持的开发板(见支持的平台)。
喇叭
音频文件准备
例程工程的 disk 目录默认包含 3 个样例文件:
1.mp3
2.mp3
3.wav
说明:为适配固定分区大小,/3.wav 可使用压缩参数(如 11.025kHz、8bit PCM)。当前支持 8bit PCM 与非 48kHz WAV 输入。
构建时会将 disk 打包为文件系统镜像并下载到设备。运行时程序会在根目录查找 /1.mp3、/2.mp3、/3.wav。若你的文件名不同,请将文件名调整为上述名称,或修改源码中的 mix_main 添加文件路径。
编译和烧录
切换到例程 project 目录,执行编译:
scons --board=sf32lb56-lcd_n16r12n1 -j8
编译完成后,执行下载脚本:
build_sf32lb56-lcd_n16r12n1_hcpu\uart_download.bat
例程的预期结果
上电后串口会打印类似日志:
mount fs on flash to root success
mix 3 example
Directory /:
1.mp3
2.mp3
3.wav
随后可听到三路音频叠加后的混音输出。例程默认运行约 50 秒后停止并退出混音线程。
对应日志如图:

异常诊断
没有声音输出:
检查 AUDIO/AUDIO_LOCAL_MUSIC 与板级音频驱动配置是否开启。
检查喇叭或耳机硬件连接。
提示 open 文件失败:
检查文件系统是否成功挂载。
检查镜像中是否包含目标音频文件,以及文件名是否与源码一致。
参考文档
RT-Thread DFS 文件系统文档:https://www.rt-thread.org/document/site/
SiFli SDK 快速上手文档:请参考 SDK 文档中心对应章节。
更新记录
版本 |
日期 |
发布说明 |
|---|---|---|
0.0.2 |
4/2026 |
支持 8bit PCM 与非 48kHz WAV 输入,修正文档中的板卡与编译示例 |
0.0.1 |
4/2026 |
初始版本 |