项目运行环境
- 硬件环境:raspberry-zero-w with Linux/arm 4.19.66+/ kernel
- 系统环境:2019-09-26-raspbian-buster-lite
- 参考借鉴:小米方盒子2 | 蓝牙耳机连接树莓派3
安装依赖程序
- 由Bluez提供蓝牙协议栈和bluetoothctl工具
- Bluez和PulseAudio的连接是由模块pulseaudio-module-bluetooth完成的
- 蓝牙音频有A2DP/HSP/HFP三种模式,A2DP和HSP:BlueZ -> PulseAudio -> ALSA,而HFP则还需要oFono模块
- 使用omxplayer来播放音频时需指定输出设备为alsa
1 | sudo apt install bluez bluez-firmware pulseaudio pulseaudio-module-bluetooth |
启动Pulseaudio
1 | # Pulseaudio在播放完成后自动退出可根据如下修改后重新启动Pulseaudio守护程序。 |
连接蓝牙设备
添加pi用户到蓝牙组后重启,否则普通用户pi无法操作蓝牙:sudo usermod -G bluetooth -a pi
如果不添加用户到蓝牙组,那么全局都需要以root用户运行,否则将正常无法播放
重启后蓝牙连接不需要重复配对,只需要执行:connect F4:4E:FD:F0:2A:69 即可
连接蓝牙设备
1 | sudo hciconfig -a # 查看设备 |
- 其他蓝牙命令
1 | hciconfig hci0 up # 打开蓝牙 |
选择播放声卡
1 | sudo pacmd list-cards # 查看现有声卡 |
发现其他问题
非ROOT权限能连接蓝牙音箱但播放无声音
连接时出现错误:Failed to connect: org.bluez.Error.Failed
1 | [bluetooth]# connect F4:4E:FD:F0:2A:69 |