首先,感谢网络上国内外各位大神,我只是依葫芦画瓢的做了试验实现了基于树莓派的DLNA和Airplay无线音频传输的功能。因为过程中也走了弯路有些问题,所以这里也只是来记录一下操作过程,整个实现方法和过程并非原创,特此声明。
我使用的是树莓派3 B+版本硬件,系统为官方Raspbian的最新版本系统,如下:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 9.6 (stretch)
Release: 9.6
Codename: stretch$ uname -a
Linux raspberrypi3 4.14.82-v7+ #1165 SMP Wed Nov 21 16:42:28 GMT 2018 armv7l GNU/Linux
<基于树莓派的DLNA无线音频传输>
1. 使用如下命令安装依赖的工具:
sudo apt-get install libupnp-dev libgstreamer1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-alsa autoconf gstreamer1.0-pulseaudio
这里特别记录一下,根据网上搜索到的描述,gstreamer1.0-alsa和gstreamer1.0-pulseaudio安装哪一个是根据系统环境确定的,我没有安装后者的时候可以连接上但一直没有声音输出,安装这个工具包以后就okay了,所以建议一开始就一起安装上。
2. 安装gmediarender
根据网上搜索到的描述,这里需要下载gmrender-resurrect的源代码然后进行编译安装,但我是直接使用apt-get安装的,测试也没问题:
sudo apt-get install gmediarender
3. 使用如下命令进行播放测试
gmediarender -f "Raspberry"
-f后面的参数是DLNA服务的名称,在手机上连接时可以看到。使用此命令启动DLNA服务后,我使用QQ音乐进行连接测试,可以看到Raspberry无线设备并成功播放音乐。
4. 可以将gmediarender设为开机自启动,这样每次启动树莓派就可以直接通过DLNA连接。使用如下操作:
编辑/etc/default/gmediarender:
ENABLE=1
DAEMON_USER="gmediarender:audio" // 用户分组
UPNP_DEVICE_NAME="$(hostname)" // DLNA连接的名称,可根据自己喜好更改
执行如下命令:
sudo useradd -g audio gmediarender
sudo update-rc.d gmediarender defaults
这样就实现了gmediarender开机自动启动。
如果使用上述命令重启后发现gmediarender未启动,可以使用systemd enable服务的方式实现:
/lib/systemd/systemd-sysv-install enable gmediarender
<基于树莓派的Airplay无线音频传输>
1. 安装依赖工具包
sudo apt-get install libssl-dev libavahi-client-dev libasound2-dev libao-dev libpulse-dev
2. 安装shairport
这里网上也介绍的是下载源码进行编译安装,我还是直接使用如下命令进行的安装,测试可以使用。
sudo apt-get install shairport-sync
3. 安装完成后,直接重启了一次(不重启也没问题),然后在iphone的QQ音乐上,就可以看到设备进行无线音乐传输了。个人感觉相对于DLNA来说配置更简单一点。
最后,还是要赞一下树莓派!