每天学点儿树莓派(番外一)——AirPlay播放器

来源:互联网 发布:空浪 知乎 编辑:程序博客网 时间:2024/06/03 16:23

这两天手头暂时没有什么可以折腾的东西,公司里也比较忙。思来想去不如放下脚步写点儿树莓派好玩的东西。所以就搞了个番外篇,以后也会不定期的写几篇番外篇来介绍树莓派的各种好玩的用法。
AirPlay是苹果公司推出的一套无线音乐解决方案。现在我们手里的iPhone、iPad甚至是Apple Watch等设备还有电脑上的iTunes都支持AirPlay。但是支持AirPlay功能的音响设备都贵得要死,作为屌丝的我自然是感觉买那么贵的音响实在是不合算。前两天突发奇想,如果树莓派可以支持AirPlay的功能,那么不就可以让我享受一把无线音乐的自由自在了吗?于是谷歌了一下,发现还真有解决方案。
总起来说就是使用了一段Perl脚本来实现的功能,当然最终还是调用的C的程序。废话不多说,开始:
1.更新软件列表和软件

sudo apt-get updatesudo apt-get upgrade

2.安装各种必须的库

sudo apt-get install libao-dev libssl-devsudo apt-get install libcrypt-openssl-rsa-perl libio-socket-inet6-perlsudo apt-get install libwww-perl avahi-utils libmodule-build-perl

3.安装Perl Net-SDP

sudo cpaninstall Net::SDP

4.安装Shairport

git clone https://github.com/hendrikw82/shairport.gitcd shairportmake

到此为止,所有需要的软件都已经安装好了,如果我们使用如下命令,就可以启动AirPlay服务器了。

./shairport.pl -a myPi

呃,当然,咱们不会就这么结束了,因为你会发现如果你把这条命令敲上去,服务是启动了,也能用了,但是SSH的终端却被程序阻塞了。此时一旦你关闭了SSH终端,那么shairport程序也会被关闭了。这显然不是我们想要的状态啊。
能够解决上述问题的方案就是把它设置成服务。
5.将Shairport设置成为系统服务
首先进入shairport文件夹,make install一下,然后把shairport.init.sample复制到/etc/init.d/目录下

cd shairportsudo make installsudo cp shairport.init.sample /etc/init.d/shairport

修改权限,顺道加个开机启动

cd /etc/init.dsudo chmod a+x shairportsudo update-rc.d shairport defaults

编辑shairport文件

sudo vim /etc/init.d/shirport

定位到DAEMON_ARGS="-w $PIDFILE"的那一行,并且修改成DAEMON_ARGS="-w $PIDFILE -a myPi"。保存退出。
6.启动服务
sudo service shairport start
打开你的iPhone的AirPlay,用你的音响来感受音乐吧~
7.让电脑和树莓派共享一套音响设备
话说我接在树莓派上的这套音响原来可是在电脑上用的啊,就这么给我霸占了,以后电脑用啥啊?来回拔来拔去的太麻烦了。于是上网查了查2进1出的音频源选择器,没想到还真有这种东西!后来想想实现一个也没什么,挺简单的。这里给出一个电路图,喜欢DIY的同学可以参考一下。

PS:据说不做成共地的话,可以有效避免串扰哟~
这里由于我手头的工具不是很齐全,就没折腾着再自己去焊个板子,直接在某宝买了个成品。哪天心情好拆开改装一下也好。

还有一点就是,不论是这个图还是我买的切换器都是用的开关来控制音源选择的,这在物联网时代来说有些low啊。感兴趣的同学可以考虑怎么把它设置成软切换的,或者干脆自动切换的。欢迎大家留言讨论!

0 0