这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【树莓派真好玩】十:终篇实战(基于AirPlay的无线音箱)&展望

共22条 1/3 1 2 3 跳转至

【树莓派真好玩】十:终篇实战(基于AirPlay的无线音箱)&展望

专家
2021-11-21 10:49:34     打赏

上篇文章我们介绍了基于DHT11的温湿度测量以及如果使用有源蜂鸣器,并且实现了超过温湿度阈值时蜂鸣器报警等功能。这节我们来用树莓派4B+普通的有线音箱来实现一个基于AirPlay的无线音箱。


WeChat Image_20211120121108.jpg


最近一些年以来,新出品的音箱都带无线功能,可以在手机上通过WIFI或者蓝牙连接音箱播放音乐,不用插音频线,相当省事了。


可是对于一些老音箱而言就很尬尴了,尤其是一些当初价格很昂贵、音质非常棒的音箱,丢掉有些可惜,留着吧还没人家无线音箱的先进功能。不过现在不要怕了,我来手把手教你用树莓派将老旧音箱改造成支持AirPlay的无线音箱。


要实现这个目的有很多种方案,经过我的测试,最稳妥的方案还是当属使用shairport-sync。


连接


连接没啥说的啦,就是用音频线将有源音箱连接到树莓派的耳机孔。然后打开音箱电源,将音量调整到适中就可以啦。


APT安装版


首先我测试的是使用apt直接安装软件包:

sudo apt install shairport-sync


安装完成后,使用如下指令启动服务:

sudo service shairport-sync start


然后在苹果设备(IPhone, IPad mini)上使用酷我音乐播放歌曲,会发现个选择音箱的选项,点击后会发现除了设备本身外,多了一个音箱,我们选择多出来的音箱,声音就从我们的音箱里而不是设备本身传出来啦。


不过测试几次后,发现 shairport-sync服务没法重新启动了:


service shairport-sync restart
Job for shairport-sync.service failed because a fatal signal was delivered to the control process. See "systemctl status shairport-sync.service" and "journalctl -xe" for details.


原本以为是我操作问题,结果去 shairport-sync的github上一看,原来是对应版本的软件存在BUG,详情可以参考:

Can not start shairport-sync as service #922


我看了一下安装的版本:

shairport-sync -V


返回如下信息:

3.2.2-OpenSSL-Avahi-ALSA-pa-dummy-stdout-pipe-soxr-convolution-metadata-sysconfdir:/etc


和github对应issue种,提到的版本一样,作者建议从源码自己编译安装最新版本:

The most satisfactory way to deal with the problem, IMHO, is to build and install the latest release from source, using this guide.


好吧,看来是没法偷懒了。


从源码编辑


从源码编译可以看官方github提供的教程:Simple Installation Instructions。


编译前准备


首先更新一下系统:

sudo apt update
sudo apt upgrade


如果使用的是WIFI,那么WIFI的电源管理影响软件的使用(低耗电模式可能会不影响 AirPlay请求等)

sudo iwconfig wlan0 power off


重启树莓派:

sudo reboot


清理旧版本


删除之前的安装的shairport-sync,使用如下指令查找:

which shairport-sync


删除之:

sudo rm -rf /usr/bin/shairport-sync


删除以下文件(如有):

sudo rm /etc/systemd/system/shairport-sync.service
sudo rm /lib/systemd/system/shairport-sync.service
sudo rm /etc/init.d/shairport-sync
sudo rm /etc/dbus-1/system.d/shairport-sync-dbus.conf
sudo rm /etc/dbus-1/system.d/shairport-sync-mpris.conf


重启:

sudo reboot


编译安装


安装编译时的依赖库和工具


sudo apt install --no-install-recommends build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev


clone软件源码并编译安装:


git clone https://github.com/mikebrady/shairport-sync.git
cd shairport-sync
autoreconf -fi
./configure --sysconfdir=/etc --with-alsa --with-soxr --with-avahi --with-ssl=openssl --with-systemd
make


相应的--with-*可以参考这里


将编译好的程序安装到系统中:

sudo make install


一些设置


当测试一切正常后,我们可以使用如下指令让shairport-sync随系统一起启动:

sudo systemctl enable shairport-sync


我们还可以编辑/etc/shairport-sync.conf来进行一些更加细节的设置,比如说设置一个更加友好的名字,设置密码等等。大家可以使用如下指令来查看具体内容:


man shairport-sync


(/etc/shairport-sync.conf文件中已经带了很完备的注释,大家也可以直接参考文件注释)。

测试


使用IPhone 手机,打开酷我音乐等音乐客户端,播放一曲《伤心太平洋》,哎,我有多么伤心啊。


注意到右上那个小四方下边带个正三角的图标没有:

WeChat Image_20211120121214.png


点击上图中的那个图标,就会出现“隔空播放”选项,默认是使用本机设备(iPhone):

WeChat Image_202111201212143.png


选择Raspberrypi,美妙的音乐令人伤感的音乐就从音箱里出来啦。

WeChat Image_202111201212142.png

展望


至此,我们【树莓派真好玩】系列文章要告一段落啦,其实树莓派远比我们介绍的要好玩要强大数百倍,除了当作普通Linux电脑使用,还可以做很多好玩的事情。


比如说我们可以用树莓派+动态DNS在家搭建一个个人博客网站,这样就可以省一大笔租用虚拟主机或者VPS等开销了。


或者用树莓派DIY一个NAS,把自己常用的照片、软件、文件都放在上边,便于统一管理和访问,不用去买数千上万的专业NAS设备了。


当然了,我们还可以用树莓派去DIY一个3D打印机、四轴飞行器、功能强大又好玩的机器人等等......


总之,只要你想象力够丰富,动手能力又强,又善于利用网络查找资源&寻求帮助,树莓派会带给你无线可能。奈何本人精力和水平都有限,不能面面俱到地介绍了。





关键词: 树莓派     Raspberry Pi     DIY    

专家
2021-11-21 11:31:12     打赏
2楼

不错啊


院士
2021-11-21 22:52:54     打赏
3楼

学习!


专家
2021-11-22 00:02:24     打赏
4楼

感谢楼主的分享,很实用了。


高工
2021-11-22 00:07:16     打赏
5楼

好厉害


专家
2021-11-22 00:13:37     打赏
6楼

感谢楼主分享


专家
2021-11-22 07:08:35     打赏
7楼

学习中


院士
2021-11-22 09:27:39     打赏
8楼

树莓派还能这样玩啊


高工
2021-11-22 09:32:36     打赏
9楼

这相当于使用树莓派做了一个音频播放器的server端。

厉害


专家
2021-11-27 19:41:27     打赏
10楼

给力


共22条 1/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]