使用树莓派,开启他的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版本(iphoneandroid机均可以用)

2.0版本iphone不能使用,android可以,苹果的就是傲娇)

开机进入图形界面

在开始提解决方法时,重要的是看会看log!本次我们需要关心的是:/var/log/syslog/var/log/bluetoth_dev

主要在前面两个博文上根据自己的需求提出的改进:

  1. 配置分组。配置好后会出现各种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身份)

  1. 修改设备蓝牙的名字和属性

名字修改没有问题,主要是属性修改,在/etc/bluetooth/main.config中是不会出现问题的,但是在

/var/lib/bluetooth/<你的蓝牙MAC地址>/config下,修改后每次开机都会产生变化为

Class0x4e041c所以,这里需要我们再修改main.config文件下的class=0x4e041c

  1. 配置蓝牙设备接入步骤

并没有发现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"

  1. 播放没有声音

查看系统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>

替换后就有了!

  1. 运行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代替原句!

  1. 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协议连接手机播放音乐相关推荐

  1. A2DP协议连接数据传输

    Android 蓝牙学习 @# Android 蓝牙 文章目录 A2DP协议连接&数据传输 1. A2DP协议连接 1.1 AVDTP 1.2 AVDTP 交互流程 2. A2DP 音频格式 ...

  2. 电钢琴电子琴如何增加蓝牙MIDI模块BLE连接手机双模支持U盘播放

    简介 随着电子乐器的不断兴起,用户体验至上的apple,竟然把乐器MIDI和蓝牙整合在一起,出了一个蓝牙MIDI标准 这就大大增加了乐器和IOS系统的设备互动性了,你可以选择iphone,当然也可以选 ...

  3. 【经典蓝牙】蓝牙 A2DP协议分析

    A2DP 介绍 A2DP(Advanced Audio Distribution Profile)是蓝牙高音质音频传输协议, 用于传输单声道, 双声道音乐(一般在 A2DP 中用于 stereo 双声 ...

  4. 全网首发,大众奥迪领驭帕萨特DIY数码碟盒增加USB和蓝牙播放音乐功能使用原车接口无损改装

    文章目录 全网首发!大众奥迪DIY数码碟盒增加USB和蓝牙播放音乐功能 前言 1.设计指标 2.方案设计 2.1.外壳选择 2.2.蓝牙方案 2.3.MCU方案 3.原理图设计 4.PCB设计 5.程 ...

  5. 此蓝牙设备或计算机无法处理该类型文件,蓝牙允许设备进行连接用不了_win10蓝牙允许设备连接灰色怎么解决...

    2020-11-12 15:20:52 浏览量:4578 在如今的智能设备中像手机.电脑等设备中都集成了蓝牙功能,我们经常会使用到这一功能,不过近日有用户在使用时,有一疑问,那就是手机可以连接多个蓝牙 ...

  6. win10蓝牙允许设备连接到此计算机,蓝牙允许设备进行连接用不了_win10蓝牙允许设备连接灰色怎么解决...

    手机可以连接多个蓝牙设备吗 手机连接多个蓝牙耳机的方法 在如今的智能设备中像手机.电脑等设备中都集成了蓝牙功能,我们经常会使用到这一功能,不过近日有用户在使用时,有一疑问,那就是手机可以连接多个蓝牙设 ...

  7. 蓝牙a2dp协议源码分析

    1,a2dp协议 1.1 a2dp协议 全称:Advanced Audio Distribution Profile 蓝牙音频传输协议 使用场景:主要是通过蓝牙将声音从一个设备传输到另一个设备. 市场 ...

  8. 蓝牙(二)A2DP协议

    1.概述 A2DP(Advanced Audio Distribution Profile)是蓝牙的音频传输协议,典型应用为蓝牙耳机.A2DP协议的音频数据在ACL Link上传输,这与SCO上传输的 ...

  9. 蓝牙开发那些事(9)——结合代码看a2dp协议

    上一章讲了一下avdtp的连接过程,这一章我们看一下btstack的实例. 因为a2dp是一个音频传输的框架协议,具体的使用已经牵涉到应用层了,比如说我们的设备是个音箱设备还是个音源设备,我们目前是个 ...

最新文章

  1. Pycharm中导入requests模块详解
  2. php mysql 开发微博_3款php+mysql国产微博程序推荐
  3. html输入框数字无法读取,关于input无法获取小数点的问题!!!!-汗血宝马
  4. Ubuntu中重启ssh服务时提示:Job for ssh.service failed because the control process exited with error code. See
  5. linux通过c语言编程访问远程mysql
  6. 容器学习 之 共享数据(十六)
  7. 知乎高赞、高逼格 1024 程序员节礼物
  8. Ubuntu下安装 imagej 和 Fiji
  9. NOIP2015DAY2T2子串
  10. .net 创建计划任务开机后自动以管理员身份启动运行 win7 ~ win10
  11. CAD工具——导出JPG
  12. jQ实现简单放大镜效果
  13. Matlab矩阵操作
  14. 一文读懂反向传播算法原理
  15. Kong 开源的的服务网格Kuma爬过了K8S这座大山
  16. 数据分析方法论之RFM模型详解
  17. EN300328测试软件,蓝牙耳机EN300328测试项目。
  18. 网站被降权的6种处理方法
  19. 刚上任的程序员如何做好团队管理
  20. 玩转“Redis轻量级数据库”之入门(上)

热门文章

  1. 想要将多个视频拼接在一起?如何把三个视频合成一个视频
  2. 学习python必备的软件
  3. 【C语言学习】C语言初探
  4. 从大厂裸辞后,面阿里、字节全都挂掉,连货拉拉都不要自己...
  5. [VLDB2019]DLM:微信大规模分布式n-gram语言模型系统
  6. 用c语言编写匀速直线运动,匀速直线运动知识点总结
  7. 股利折现模型详解-股票定价-财务管理(七)
  8. 基于 Transformer 模型的电影评论情感分类
  9. API接口——睡眠带开放能力
  10. 凑个热闹,分析下Padavan的代码,一