最近跟树莓派连接蓝牙杠上了,新入的树莓派安装叮当希望通过蓝牙音响播放声音,但是通过alsa配置连接的蓝牙根本没法正常使用,播放音乐勉强可以,但是叮当的语音完全听不到,或者磕磕绊绊只能听到最后几个字。看了这个文章《Connect Bluetooth Headset To Raspberry Pi 3 (A2DP & HSP)》,决定还是放弃板载蓝牙,用usb蓝牙适配器试一下。跟着这个文章折腾了很久,完全坑爹了,pulseaudio自己编译的就是不带pulseaudio-module-bluetooth,不知道这个东西的代码在哪,谷歌半天也没找到,只找到了二进制版本。最后掀桌重装系统,重新来,不听他胡比比了。

前提是树莓派3b自带了bluez5 bluez-alsa,所以只需要安装下面两个 :

文章中说要卸载树莓派源里的pulseaudio,我猜测是他的源有问题,反正我这里通过apt安装的是完全没问题的,版本pulseaudio 10.0-1。我的蓝牙是免驱的,所以也不需要编译安装驱动。

安装后停用板载蓝牙, sudo vim /etc/modprobe.d/raspi-blacklist.conf ,添加两行:

重启一下  sudo reboot

重启后,操作连接蓝牙, bluetoothctl 命令进入蓝牙命令行执行下面命令:

上面connect实际上包括了pair和connect两步,直接输入connect就会自动配对。之后还可以执行 trust xx:xx:xx:xx:xx:xx 信任设备下次自动连接。

连接蓝牙后操作pulseaudio,列出声卡:

然后可以看到你的蓝牙设备,就是module-bluez5-device驱动的那个。如果这里找不到,命令 pacmd info 看下蓝牙模块 module-bluetooth-discover 是不是存在,或者尝试重新加载下这个模块(如果看到蓝牙设备就不用了,如果以下过程出错,可以新启动一个终端 pulseaudio --kill关闭原来的pulseaudio,重新启动一个 pulseaudio -v 这里可以看到具体的信息,看为什么模块加载失败):

开头那篇文章里面进行了这一步操作,将默认配置改成headset_head_unit(这个是为什么我也不太清楚):

其中1是你上面看到的蓝牙的card的编号。

列出所有的声音输出设备(sink):

我的这里会出现两个,第一个 alsa_output.platform-soc_audio.analog-stereo 是板载声卡设备,第二个名为 bluez_sink.00_00_01_04_**_**.headset_head_unit的是我的小米蓝牙音响。

配置默认输出设备,后面写名称name或者编号都可以:

如果你需要配置输入设备,列出source设备:

找到蓝牙的那个输入设备,配置默认设备:

我这里是要配置ps eye为输入设备,名称是 alsa_input.usb-OmniVision_Technologies__Inc._USB_Camera-B4.09.24.1-01.multichannel-input 。

配置完成后就可以测试了,录个音试试:

吹段口哨,然后播放一下听听:

调节音量,不要漏掉百分号:

最后重启下dingdang,可以基本正常的使用了。不过这里发现的一点问题是唤醒后的滴的一声,大多数情况下都听不到……另外我尝试连接小米蓝牙音响和小钢炮都可以,但是连接天猫精灵list sink却看不到设备,不知道什么原因,吊大的来说说?

 

评论

电子邮件地址不会被公开。 必填项已用*标注

你可以使用以下 HTML 标签和属性:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">