树莓派连接蓝牙音响并播放音频
- 前提准备
- 方式一:通过桌面图形界面连接(播放有坑)
- 方式二:通过命令窗连接(有坑)
前提准备
默认已经完成树莓派系统的烧录及更新
打开命令窗执行以下指令安装蓝牙相关包
sudo apt-get install pi-bluetooth bluez bluez-firmware blueman
方式一:通过桌面图形界面连接(播放有坑)
让树莓派先连接显示器,再外接鼠标键盘或者通过VNC之类的软件远程控制树莓派。具体方法网上有很多这里就不细说了。
然后找到蓝牙标识,左键添加设备即可。
之后在旁边的小喇叭处右键,选择蓝牙音响作为播放设备,之后就可以使用蓝牙音响作为输出了
坑!!!!
我选蓝牙音响做输出时,蓝牙会先断开然后再连上,但是不能作为音频播放设备。
出现上述问题时,直接把蓝牙断开,然后直接选择蓝牙音响作为输出,树莓派会自动连接蓝牙音响,然后把蓝牙音响作为音频设备输出。如下图
方式二:通过命令窗连接(有坑)
首先输入以下指令进入蓝牙控制命令
sudo bluetoothctl
然后输入以下指令
power on
再输入
agent on
此时蓝牙已经准备好了,输入以下指令,开始搜索设备
sacn on
找到蓝牙音响对应的地址,类似 A0:9F:B2:C4:99:2C
然后输入以下指令进行连接
pair A0:9F:B2:C4:99:2C
trust A0:9F:B2:C4:99:2C
connect A0:9F:B2:C4:99:2C
连接成功后会显示出蓝牙设备的名称,然后exit退出就行,如下图
[京鱼座蓝牙小蛮腰]# exit
第二次连接
#进入蓝牙指令
sudo bluetoothctl
#查看已连接过的设备
devices
#找到对应的地址然后直接连接
connect A0:9F:B2:C4:99:2C
连接成功后退出即可
坑1:
有时候2次连接会失败,如:Failed to connect: org.bluez.Error.Failed,我找了网上很多解决办法都没解决,最后找到的方法是先播放了一个音频文件,再按二次连接的方法就连上了,不知道是什么奇怪的bug。
具体方法如下:
#include "stdlib.h"
#include <stdio.h>
void main(){
//xxx是你音频文件的名字
system("play xxx.mp3");
}
编译一个类似的.c文件,然后每次连接前执行一下就好
如果无法播放,则安装以下2个包即可
sudo apt-get install sox
sudo apt-get install libsox-fmt-all
坑2:蓝牙音响连上后,无法作为音频输出设备
我没找到命令窗下如何把蓝牙音响设为音频输出的指令,所以找了个简单粗暴的办法,把HDMI和AV Jack这两个输出都关了,蓝牙音箱连上就是默认输出设备。