树莓派2model B 通过蓝牙实现A2DP协议连接手机播放音乐
使用树莓派,开启他的A2DP功能,实现用手机蓝牙控制树莓派播放歌曲。主要操作过程参考http://wangye.org/blog/archives/921/以及英文博客http://www.instructables.com/id/Turn-your-Raspberry-Pi-into-a-Portable-Bluetooth-A/
本机机型:树莓派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使用声音服务AccessDenied的问题,你将运行shairport进程的用户加入pulse-access组就可以了。
来自 <http://wangye.org/blog/archives/922/>
所以我做的操作是:
sudo usermod -a -Gpulse-access pi
sudo usermod -a -G pulse-access root(我自己在使用过程中都是切换到root身份)
- 修改设备蓝牙的名字和属性
名字修改没有问题,主要是属性修改,在/etc/bluetooth/main.config中是不会出现问题的,但是在
/var/lib/bluetooth/<你的蓝牙MAC地址>/config下,修改后每次开机都会产生变化为
Class0x4e041c所以,这里需要我们再修改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>
替换后就有了!
- 运行update-rc.d bluetooth-agent defaults报错,导致每次开机服务开不起来。。。
解决办法也是参考他人的
在debian6中使用update-rc.d会报错,如下:
update-rc.d: usingdependency 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 "bluetoothconfig!"
echo "installapt"
sudoapt-get update -y #更新源列表
sudoapt-get upgrade -y #升级系统软件
echo"=============================installvim========================================"
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-2bluez-tools
echo "配置安装的软件"
echo "============================配置分组规则======================================="
sudo usermod -a -Glp pi
sudo usermod -a -Gpulse-access pi
sudo usermod -a -Gpulse-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 -dbluetooth-agent
echo "===========================命令行以pi来登陆===================================="
sudo cp -f~/bluetooth/inittab /etc/inittab
sudo cp -f~/bluetooth/pulseaudio /etc/default/pulseaudio
echo "===========================开启蓝牙自发现======================================"
sudo hciconfig hci0piscan
sudostart-stop-daemon -S -x /usr/bin/bluetooth-agent -c pi -b -- 0000
所有配置文件下载连接<http://download.csdn.net/detail/zhaoqi_0612/9016779>
树莓派2model B 通过蓝牙实现A2DP协议连接手机播放音乐相关推荐
- A2DP协议连接数据传输
Android 蓝牙学习 @# Android 蓝牙 文章目录 A2DP协议连接&数据传输 1. A2DP协议连接 1.1 AVDTP 1.2 AVDTP 交互流程 2. A2DP 音频格式 ...
- 电钢琴电子琴如何增加蓝牙MIDI模块BLE连接手机双模支持U盘播放
简介 随着电子乐器的不断兴起,用户体验至上的apple,竟然把乐器MIDI和蓝牙整合在一起,出了一个蓝牙MIDI标准 这就大大增加了乐器和IOS系统的设备互动性了,你可以选择iphone,当然也可以选 ...
- 【经典蓝牙】蓝牙 A2DP协议分析
A2DP 介绍 A2DP(Advanced Audio Distribution Profile)是蓝牙高音质音频传输协议, 用于传输单声道, 双声道音乐(一般在 A2DP 中用于 stereo 双声 ...
- 全网首发,大众奥迪领驭帕萨特DIY数码碟盒增加USB和蓝牙播放音乐功能使用原车接口无损改装
文章目录 全网首发!大众奥迪DIY数码碟盒增加USB和蓝牙播放音乐功能 前言 1.设计指标 2.方案设计 2.1.外壳选择 2.2.蓝牙方案 2.3.MCU方案 3.原理图设计 4.PCB设计 5.程 ...
- 此蓝牙设备或计算机无法处理该类型文件,蓝牙允许设备进行连接用不了_win10蓝牙允许设备连接灰色怎么解决...
2020-11-12 15:20:52 浏览量:4578 在如今的智能设备中像手机.电脑等设备中都集成了蓝牙功能,我们经常会使用到这一功能,不过近日有用户在使用时,有一疑问,那就是手机可以连接多个蓝牙 ...
- win10蓝牙允许设备连接到此计算机,蓝牙允许设备进行连接用不了_win10蓝牙允许设备连接灰色怎么解决...
手机可以连接多个蓝牙设备吗 手机连接多个蓝牙耳机的方法 在如今的智能设备中像手机.电脑等设备中都集成了蓝牙功能,我们经常会使用到这一功能,不过近日有用户在使用时,有一疑问,那就是手机可以连接多个蓝牙设 ...
- 蓝牙a2dp协议源码分析
1,a2dp协议 1.1 a2dp协议 全称:Advanced Audio Distribution Profile 蓝牙音频传输协议 使用场景:主要是通过蓝牙将声音从一个设备传输到另一个设备. 市场 ...
- 蓝牙(二)A2DP协议
1.概述 A2DP(Advanced Audio Distribution Profile)是蓝牙的音频传输协议,典型应用为蓝牙耳机.A2DP协议的音频数据在ACL Link上传输,这与SCO上传输的 ...
- 蓝牙开发那些事(9)——结合代码看a2dp协议
上一章讲了一下avdtp的连接过程,这一章我们看一下btstack的实例. 因为a2dp是一个音频传输的框架协议,具体的使用已经牵涉到应用层了,比如说我们的设备是个音箱设备还是个音源设备,我们目前是个 ...
最新文章
- Pycharm中导入requests模块详解
- php mysql 开发微博_3款php+mysql国产微博程序推荐
- html输入框数字无法读取,关于input无法获取小数点的问题!!!!-汗血宝马
- Ubuntu中重启ssh服务时提示:Job for ssh.service failed because the control process exited with error code. See
- linux通过c语言编程访问远程mysql
- 容器学习 之 共享数据(十六)
- 知乎高赞、高逼格 1024 程序员节礼物
- Ubuntu下安装 imagej 和 Fiji
- NOIP2015DAY2T2子串
- .net 创建计划任务开机后自动以管理员身份启动运行 win7 ~ win10
- CAD工具——导出JPG
- jQ实现简单放大镜效果
- Matlab矩阵操作
- 一文读懂反向传播算法原理
- Kong 开源的的服务网格Kuma爬过了K8S这座大山
- 数据分析方法论之RFM模型详解
- EN300328测试软件,蓝牙耳机EN300328测试项目。
- 网站被降权的6种处理方法
- 刚上任的程序员如何做好团队管理
- 玩转“Redis轻量级数据库”之入门(上)