树莓派4B多音频输出设备同时播放多路MP3文件问题咨询
树莓派4B 4-8路MP3音频多输出解决方案
问题根因说明
你遇到的最多2路输出、播放器只能单声卡输出的问题主要来自两个原因:
- 多数USB声卡供电要求高,多设备同时插树莓派原生USB口时供电不足导致设备掉线
- 默认播放器启动时调用全局默认声卡,没有手动绑定独立声卡设备
操作步骤
1. 硬件适配调整
- 不要将所有USB声卡都插在树莓派的蓝色USB3.0接口上,USB3.0口共享总线带宽,多设备接入易出现冲突,建议2台插USB3.0、其余插USB2.0接口,或使用带独立供电的USB HUB接入所有声卡
- 优先选用同型号的合规USB免驱声卡,避免不同厂商驱动不兼容导致的多设备加载失败
2. 系统声卡配置
- 首先执行
aplay -l命令查看所有已识别的声卡,记录每块声卡的编号(比如card 0为板载3.5mm接口,card 1为第一块USB声卡,以此类推) - 备份原有ALSA配置文件:
sudo cp /etc/asound.conf /etc/asound.conf.bak - 编辑
/etc/asound.conf为每块声卡定义独立的PCM输出设备,示例配置如下(根据你实际的声卡数量调整):
pcm.card0 { type hw card 0 device 0 } pcm.card1 { type hw card 1 device 0 } pcm.card2 { type hw card 2 device 0 } # 后续声卡以此类推配置
3. 多声卡同步播放配置
- 优先选用轻量命令行播放器mpg123实现MP3直接播放,无需转码为WAV,首先执行安装命令:
sudo apt update && sudo apt install mpg123 -y - 每一路输出单独启动一个播放进程,手动绑定对应声卡设备,指定播放文件夹即可,示例命令(循环播放指定路径的MP3文件):
- 板载接口播放:
mpg123 --loop 0 -a card0 /sd卡路径/指定文件夹1/*.mp3 - 第一块USB声卡播放:
mpg123 --loop 0 -a card1 /sd卡路径/指定文件夹2/*.mp3 - 其余声卡按照上述格式修改参数即可
- 板载接口播放:
- 如果需要后台运行、开机自启,可将每一路的播放命令配置为独立的systemd服务,实测8路同时播放时CPU占用率不超过15%,2GB版本树莓派4B完全可以稳定运行
内容的提问来源于stack exchange,提问作者David Weber
相关产品推荐
相关产品推荐

