树莓派2model B 通过蓝牙实现A2DP协议连接手机播放音乐
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了树莓派2model B 通过蓝牙实现A2DP协议连接手机播放音乐,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4696字,纯文字阅读大概需要7分钟。
内容图文
使用树莓派,开启他的 A2DP 功能,实现用手机蓝牙控制树莓派播放歌曲。主要操作过程参考 http://wangye.org/blog/archives/921/ 以及英文博客 http://blog.sina.com.cn/s/blog_89f6a9130101fi07.html
本机机型:树莓派 2model B
蓝牙适配器 4.0 版本( iphone 和 android 机均可以用)
2.0 版本 ( iphone 不能使用, android 可以,苹果的就是傲娇)
开机进入图形界面
在开始提解决方法时,重要的是看会看 log !本次我们需要关心的是: /var/log/syslog 和 /var/log/bluetoth_dev
主要在前面两个博文上根据自己的需求提出的改进:
-
配置分组。配置好后会出现各种 bug ,其中已一个
raspberrypi pulseaudio[2563]: [pulseaudio] protocol-native.c: Denied access to client with invalid authorization data.
看到网上的解决方案说:
关于shairport使用声音服务Access Denied的问题,你将运行shairport进程的用户加入pulse-access组就可以了。
来自 < http://wangye.org/blog/archives/922/ >
所以我做的操作是:
sudo usermod -a -G pulse-access pi
sudo usermod -a -G pulse-access root (我自己在使用过程中都是切换到 root 身份)
-
修改设备蓝牙的名字和属性
名字修改没有问题,主要是属性修改,在 /etc/bluetooth/main.config 中是不会出现问题的,但是在
/ var / lib / bluetooth /< 你的蓝牙MAC地址 >/ config下,修改后每次开机都会产生变化为
Class 0x4e041c 所以,这里需要我们再修改 main.config 文件下的 class= 0x4e041c 。
-
配置蓝牙设备接入步骤
并没有发现99-input.rules文件,于是就在相应的路径新建了一个文件
vim /etc/udev/rules.d/99-input.rules
内容为:
SUBSYSTEM=="input", GROUP="input", MODE="0660"
KERNEL=="input[0-9]*", RUN+="/usr/lib/udev/bluetooth"
-
播放没有声音
查看系统 log ,说的是大概是无法开启 / usr / lib / udev / bluetooth里面的 sink ,也是看到网上的解决方法 :
2° output audio doesn‘t work
in this file: /usr/lib/udev/bluetooth :
Replace this line:
AUDIOSINK="alsa_output.platform-bcm2835_AUD0.0.analog-stereo"
With this:
AUDIOSINK="alsa_output.0.analog-stereo"
来自 < http://www.instructables.com/id/Turn-your-Raspberry-Pi-into-a-Portable-Bluetooth-A/?ALLSTEPS >
替换后就有了!
-
运行 u pdate-rc.d bluetooth-agent defaults报错,导致每次开机服务开不起来。。。
解决办法也是参考他人的
在 debian6 中使用 update-rc.d 会报错,如下:
update-rc.d: using dependency based boot sequencing
可以使用 insserv 命令来代替 update-rc.d
来自 < http://www.cnblogs.com/ac1985482/p/4046355.html >
所以使用 insserv -d bluetooth-agent 代替原句!
-
pulseaudio 报错
现在记不清具体是什么错误了,我做的处理是
[warn] PulseAudio configured for per-user sessions ... (warning).
Debian变种版本也会在启动过程中弹出类似的警告信息。为了解决这个问题,键入下面这个命令:leafpad /etc/default/pulseaudio
找到这一行:PULSEAUDIO_SYSTEM_START=0
把0换成1:
PULSEAUDIO_SYSTEM_START=1
其中,0表示系统模式下不启动PulseAudio,1表示系统模式下启动PulseAudio。
来自 < http://blog.csdn.net/frank_good/article/details/40424221 >
其他的都是参照那两篇博文做的操作。
出了问题一定记得看 log !
另外搜不到搜不到蓝牙的时候尝试操作 sudo hciconfig hci0 piscan
搜到蓝牙连接不上,尝试 sudo start-stop-daemon -S -x /usr/bin/bluetooth-agent -c pi -b -- 0000
再不行就重启试试吧。
最后附上我写的一个简单的脚本操作,再装完系统后,为 root 创建密码,将需要的文件拷到用户目录。再就是在目录下执行
chmod 777 bluetooth.sh
./bluetooth.sh
最后重启一下 !
#!/bin/bash
echo "==============================================================================="
echo " 使用华中科技大学的源 "
sudo cp -f ~/bluetooth/sources.list /etc/apt/sources.list
echo "bluetooth config!"
echo "install apt"
sudo apt-get update -y # 更新源列表
sudo apt-get upgrade -y # 升级系统软件
echo "=============================install vim========================================"
sudo apt-get install -y vim
sudo cp -f ~/bluetooth/.vimrc /root/.vimrc
sudo apt-get install -y bluetooth bluez pulseaudio-module-bluetooth python-gobject python-gobject-2 bluez-tools
echo " 配置安装的软件 "
echo "============================ 配置分组规则 ======================================="
sudo usermod -a -G lp pi
sudo usermod -a -G pulse-access pi
sudo usermod -a -G pulse-access root
echo "========================= 蓝牙启用 A2DP 功能 ======================================"
sudo cp -f ~/bluetooth/audio.conf /etc/bluetooth/audio.conf
sudo cp -f ~/bluetooth/daemon.conf /etc/pulse/daemon.conf
echo "============================ 修改名字 ==========================================="
sudo cp -f ~/bluetooth/main.conf /etc/bluetooth/main.conf
echo " 修改设备里面的名字的方法还有确定这里预留待 "
bluetoothMac=$(ls /var/lib/bluetooth/)
sudo cp -f ~/bluetooth/config /var/lib/bluetooth/*/config
echo "============================= 配置蓝牙接入 ======================================"
sudo cp -f ~/bluetooth/99-input.rules /etc/udev/rules.d/99-input.rules
sudo mkdir /usr/lib/udev
sudo cp -f ~/bluetooth/bluetooth /usr/lib/udev/bluetooth
sudo chmod 774 /usr/lib/udev/bluetooth
echo "=========================== 开启蓝牙自动发现功能 ================================"
sudo cp -f ~/bluetooth/bluetooth-agent /etc/init.d/bluetooth-agent
sudo chmod 755 /etc/init.d/bluetooth-agent
sudo insserv -d bluetooth-agent
echo "=========================== 命令行以 pi 来登陆 ===================================="
sudo cp -f ~/bluetooth/inittab /etc/inittab
sudo cp -f ~/bluetooth/pulseaudio /etc/default/pulseaudio
echo "=========================== 开启蓝牙自发现 ======================================"
sudo hciconfig hci0 piscan
sudo start-stop-daemon -S -x /usr/bin/bluetooth-agent -c pi -b -- 0000
本文出自 “Archie” 博客,请务必保留此出处http://archie.blog.51cto.com/8066859/1685362
原文:http://archie.blog.51cto.com/8066859/1685362
内容总结
以上是互联网集市为您收集整理的树莓派2model B 通过蓝牙实现A2DP协议连接手机播放音乐全部内容,希望文章能够帮你解决树莓派2model B 通过蓝牙实现A2DP协议连接手机播放音乐所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。