树莓派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

wx20170213-1647172x2.png?w=900

(2)bluez

wx20170213-1648082x.png?w=900

(3)gstreamer(Multimedia/gstreamer)

wx20170213-1720462x.png?w=900

wx20170213-1721402x.png?w=900

ffmpeg(Multimedia/ffmpeg)

wx20170213-1722072x.png?w=900

(Library)

wx20170213-1722302x.png?w=900

Base

wx20170213-1722532x.png?w=900

(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 后出现一下错误

wx20170213-1723152x.png?w=900

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

出现如下错误

wx20170213-1723552x.png?w=900

加入–without-caps

wx20170213-1724332x.png?w=900

./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

wx20170213-1724572x.png?w=900

这个配置是可以的:

./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的时候出错

wx20170213-1725242x.png?w=900

4. 其他问题

赞过:

赞 正在加载……

相关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值