树莓派python蓝牙_在树莓派3B上做蓝牙音频
无损播放器无线音频方案设计
1. 音频流程简介
暂缺。
2. 关键库和应用简介
2.1 pulseaudio
2.2 bluez
2.3 gstreamer
3. 无线音频方案实施方案
3.1 主要参考材料
3.2 树莓派和R16方案设计
( 工具,具体位置在:tina/staging_dir/toolchain-arm_cortex-a7+neon_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/bin,请确保这个位置在你的~/.bashrc PATH环境变量中
采用OpenWrt的包进行编译,对Tina进行配置,三个功能模块对应的修改部分分别如下表所示:
三个模块
Make menuconfig
R16中的运行情况
pulseaudio
Sound/pulseaudio-daemon
Sound/pulseaudio-profiles
Sound/Pulseaudio-tools
可以运行
DLNA
Gstreamer
Multimedia/gstreamer
Multimedia/gstreamer-utils
可以运行。(加入gdt-mod-mad插件,可以播放mp3,命令为:gst-launch file location=testmp3.mp3 !mad !alsasink)
Gmrender
Tina中没有,需要从github中下载并交叉编译
Bluez
Make menuconfig中的配置
(1)sound/pulseaudo-deamon
(2)bluez
(3)gstreamer(Multimedia/gstreamer)
ffmpeg(Multimedia/ffmpeg)
(Library)
Base
(5)UPNP
步骤
Raspberry pi 3B+
R16开发板
安装pulseaudio
sudo apt-get update
sudo aptitude -P install pulseaudio pulseaudio-module-zeroconf
1)下载并编译pulseaudio
2)下载并编译安装pulseaudio-module-zeroconf
配置pulseaudio
PI端:
配置pulseaudio支持网络:
1)打开/etc/pulse/default.pa:
#load-module module-native-protocol-tcp
#load-module module-zeroconf-publish
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.1.0/24 auth-anonymous=1
load-module module-zeroconf-publish
2)打开/etc/rc.local,在exit(0)前加入:
su – pi -c ‘/usr/bin/pulseaudio –start –log-target=syslog –system=false’
Ubuntu PC端(可以是虚拟机,但注意网络部分要配置为bridge模式):
1)配置并使用PC网络播放
sudo apt-get install pulseaudio paprefs
对Network Acess标签第一项打钩
2)配置PC防火墙
sudo ufw allow 4713
sudo ufw allow 5353
3)PC安装并运行avahi服务
sudo apt-get install avahi
Avahi &
4)验证
pactl list sinks short | grep tunnel
PC端运行上面这句话,能看到类似:
tunnel.raspberrypi.local.alsa_output.platform-bcm2835_AUD0.0.analog-stereo
5)使用
sudo apt-get install pavucontrol audacious
用audacious播放音乐,同时打开pavucontrol,能够看到Audacious的播放通道选择,可选择本地或者raspberryPi
类似左边
安装DLNA
1)Pi端安装所需的git/cvs、alsa、automake、gstreamer、upnp、xml库
sudo aptitude -P install git alsa-base alsa-tools alsa-utils \
automake cvs gstreamer0.10-alsa gstreamer0.10-ffmpeg \
gstreamer0.10-fluendo-mp3 gstreamer0.10-plugins-base \
gstreamer0.10-plugins-good gstreamer0.10-pulseaudio \
gstreamer0.10-tools libglib2.0-dev libgstreamer0.10-0 \
libgstreamer0.10-dev libgstreamer-plugins-base0.10-0 libupnp-dev \
libxml2-dev
2)编译安装gmrender
mkdir -p software/gmrender-resurrect && cd software/gmrender-resurrect
cd gmrender-resurrect
./autogen.sh
./configure
sudo make install
1)gstreamer交叉编译
2)gmrender交叉编译
测试DLNA
Pi端:
运行gmrender
Gmediarender &
此时会启动该服务,并显示如下信息:
Ready for rendering..
手机端:
1)下载并安装BubbleUPnP普通版
2)打开BubbleUPnP软件,选择render源,可以看到有本地和raspberry Pi两个,选择后者就能实现wifi无损音频播放了
安装配置bluez
1)安装bluez
sudo aptitude -P in stall bluez pulseaudio-module-bluetooth python-gobject python-gobject-2
sudo usermod -a -G lp pi
2)新增/etc/bluetooth/audio.conf:
Enable=Source,Sink,Media,Socket
3)修改/etc/pulse/daemon.conf
resample-method = trivial
4)配对
目前手动配对,后续自动配对
5)设置pulseaudio
无
1)交叉编译bluez
2)交叉编译pulseaudio-module-bluetooth
3)openWRT配置并编译安装python2.x
4)交叉编译python-gobject
5)交叉编译python-gobject-2
使用蓝牙音箱
sudo reboot
pulseaudio -D
蓝牙连接手机
手机端用qq音乐播放器播放音乐
Pulseaudio移植
JSON-C-0.12和libsndfile-1.0.25源码位置:服务器E:~/bluetoothaudio/dependencies-pulse
对依赖包的交叉编译:参考:http://qq327926614.lofter.com/post/1d2ab5b1_7b2e7ff 此教程里面交叉编译的是pulseaudio 4.0,多了一个Libtool-2.4.2的依赖包
对JSON-C-0.12的编译需要用到libtool,下载并安装libtool-2.4.6,按照上面教程,安装成功
对JSON-C-0.12编译:
配置:./configure –host=arm-linux-gnueabi –prefix=/pulseaudio 无错误
编译:make 后出现一下错误
JSON-C-0.11版本的没有问题
配置:./configure --prefix=/pulseaudio --host=arm-linux-gnueabi LDFLAGS=-L/pulseaudio/lib CFLAGS=-I/pulseaudio/include
编译:make
安装:make install
Libsndfile的编译
配置:./configure --host=arm-linux-gnueabi --prefix=/pulseaudio 无错误
编译:make 无错误
安装:make install 需要权限,无错误
Pulseaudio 5.0编译
配置:./configure –prefix=/pulseaudio –host=arm-linux-gnueabi LDFLAGS=-L/pulseaudio/lib CFLAGS=-I/pulseaudio/include LIBJSON_LIBS=-L/pulseaudio/lib LIBJSON_CFLGS=-I/pulseaudio/include LIBSUDFILE_CFLAGS=-I/pulseaudio/include LIBSNDFILE_LIBS=-L/pulseaudio/lib
出现如下错误
加入–without-caps
./configure –prefix=/pulseaudio –host=arm-linux-gnueabi LDFLAGS=-L/pulseaudio/lib CFLAGS=-I/pulseaudio/include LIBJSON_LIBS=-L/pulseaudio/lib LIBJSON_CFLGS=-I/pulseaudio/include LIBSUDFILE_CFLAGS=-I/pulseaudio/include LIBSNDFILE_LIBS=-L/pulseaudio/lib PKG_CONFIG=/pulseaudio/lib/pkgconfig –without-caps
这个配置是可以的:
./configure –prefix=/pulseaudio –host=arm-linux-gnueabi LDFLAGS=-L/pulseaudio/lib CFLAGS=-I/pulseaudio/include LIBJSON_LIBS=-L/pulseaudio/lib LIBJSON_CFLAGS=-I/pulseaudio/include LIBSNDFILE_CFLAGS=-I/pulseaudio/include LIBSNDFILE_LIBS=-L/pulseaudio/lib PKG_CONFIG=/pulseaudio/lib/pkgconfig –without-caps
Make的时候出错
4. 其他问题
赞过:
赞 正在加载……
相关
树莓派python蓝牙_在树莓派3B上做蓝牙音频相关推荐
- 树莓派python闹钟_使用树莓派和DS3231制作实时闹钟
需要闹钟才能起床?使用Raspberry Pi Zero和DS3231 RTC模块制作一款闹钟! 在本篇文章中,我们将基于Raspberry Pi Zero开发板和DS3231 RTC模块制作一个数字 ...
- 树莓派python蓝牙_用树莓派玩转蓝牙
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载. 蓝牙是一个使用广泛的无线通信协议,这两年又随着物联网概念进一步推广.我将介绍蓝牙协议,特别是低功耗蓝牙,并 ...
- 树莓派python实例_树莓派3 搭建 django 服务器的实例
树莓派3的基本配置 这里接着上一章的搭建过程,在我新购置的树莓派3上完成一个网页服务器的搭建以及后台数据库的相关配置.关于树莓派的玩点实在是太多,限于篇幅不做展开.由于我们仅仅只是搭建一个服务器,所以 ...
- 树莓派小车python代码_【树莓派】树莓派小车(二)树莓派、小车和红外线模块连接...
上一篇文章介绍了小车底盘以及驱动板的安装,这一次来讲一讲树莓派与驱动板以及红外线模块的安装. 树莓派的GPIO引脚定义: 树莓派的GPIO引脚共分为两种类型,一种是PHYSICAL NUMBERING ...
- 树莓派智能小车python论文_基于树莓派的自动驾驶小车,利用树莓派和tensorflow实现小车在赛道的自动驾驶...
self_drive 基于树莓派的人工智能自动驾驶小车 Artificial intelligence automatic driving car based on raspberry pie git ...
- 树莓派 树莓派 编c++_为什么树莓派仍然是教育的白骑士
树莓派 树莓派 编c++ 两年前,当Raspberry Pi推出时,它的目的是改善英国的IT教育. 从那时起,功能更强大,连接更好或更便宜的主板上市了,但是Pi仍然保持着其作为ICT教学白骑士的地位. ...
- 树莓派默认密码_用树莓派搭建私人简易网盘 2/5 树莓派4B初始设置
配件到齐后,TF卡先格式化一遍,文件系统选FAT32,以便树莓派能识别到. 系统方面,树莓派能支持的系统有很多,咱因为初来乍到,就先从官网上下载了.在这里我遇到了第一个坑.之前在网上找的资料,都推荐直 ...
- asp.net web开发步骤_如何在Windows上做Python开发?微软出了官方教程
机器之心报道 参与:路 在 Windows 上做 Python 开发太痛苦?微软最近发布了一系列官方教程,终于-- 教程地址:https://docs.microsoft.com/zh-cn/wind ...
- mac 更换默认蓝牙适配器_如何修复Mac上的“蓝牙不可用”错误
蓝牙以我们通常不会意识到的方式使生活变得如此轻松.蓝牙技术最近有很多发展,特别是具有连续性,切换,文件共享等功能.然后是依赖蓝牙LE的iBeacon和其他几种技术. 在您的Mac上,可能会出现&quo ...
- 笔记本电脑计算机管理在哪,笔记本电脑蓝牙在哪里开_如何在笔记本上打开蓝牙-win7之家...
我们如果要在电脑中使用蓝牙耳机或者进行蓝牙传输时,都是要打开蓝牙功能才可以的,在笔记本电脑中,通常内置有蓝牙功能,默认是关闭的需要我们手动开启,那么如何在笔记本上打开蓝牙呢?针对这个问题,现在给大家讲 ...
最新文章
- SP4062电路接口芯片保护IC
- MySQL 使用SELECT ... FOR UPDATE 做事务写入前的确认(转)
- 阿里公开核心技术:如何摘下4项世界冠军,推理性能比第二名快5倍
- Echarts给坐标轴添加自定义属性
- 产品经理必备神器推荐
- HttpClient实现客户端与服务器的通信
- Linux磁盘读写速率测试
- java初级系统项目_JavaSE-初级阶段项目-基于excel表格的学生管理系统
- 关于前端样式定位的一些自己的看法
- 基于linux的进程调度模拟程序,2011180021_Linux操作系统_课程设计报告_基于Linux的进程调度模拟程序...
- HTML学习(三):排版
- Win7edge浏览器看视频黑屏怎么解决?
- vs工程生成自定义图标的exe
- Soul源码总结-01-15
- 比SQL还好用,又一门国产数据库语言诞生了
- mysql中事务id,有啥用?
- 安装win10,刻录U盘,还原刻录的U盘
- bartender 不打印文本内容的解决方法
- WordPress个人资料中直接修改用户名插件Username Changer
- 用Whats Up来监控系统服务