每天学点儿树莓派(番外一)——AirPlay播放器
2015-10-22 23:13
489 查看
这两天手头暂时没有什么可以折腾的东西,公司里也比较忙。思来想去不如放下脚步写点儿树莓派好玩的东西。所以就搞了个番外篇,以后也会不定期的写几篇番外篇来介绍树莓派的各种好玩的用法。
AirPlay是苹果公司推出的一套无线音乐解决方案。现在我们手里的iPhone、iPad甚至是Apple Watch等设备还有电脑上的iTunes都支持AirPlay。但是支持AirPlay功能的音响设备都贵得要死,作为屌丝的我自然是感觉买那么贵的音响实在是不合算。前两天突发奇想,如果树莓派可以支持AirPlay的功能,那么不就可以让我享受一把无线音乐的自由自在了吗?于是谷歌了一下,发现还真有解决方案。
总起来说就是使用了一段Perl脚本来实现的功能,当然最终还是调用的C的程序。废话不多说,开始:
1.更新软件列表和软件
2.安装各种必须的库
3.安装Perl Net-SDP
4.安装Shairport
到此为止,所有需要的软件都已经安装好了,如果我们使用如下命令,就可以启动AirPlay服务器了。
呃,当然,咱们不会就这么结束了,因为你会发现如果你把这条命令敲上去,服务是启动了,也能用了,但是SSH的终端却被程序阻塞了。此时一旦你关闭了SSH终端,那么shairport程序也会被关闭了。这显然不是我们想要的状态啊。
能够解决上述问题的方案就是把它设置成服务。
5.将Shairport设置成为系统服务
首先进入shairport文件夹,make install一下,然后把shairport.init.sample复制到/etc/init.d/目录下
修改权限,顺道加个开机启动
编辑shairport文件
定位到
6.启动服务
sudo service shairport start
打开你的iPhone的AirPlay,用你的音响来感受音乐吧~
7.让电脑和树莓派共享一套音响设备
话说我接在树莓派上的这套音响原来可是在电脑上用的啊,就这么给我霸占了,以后电脑用啥啊?来回拔来拔去的太麻烦了。于是上网查了查2进1出的音频源选择器,没想到还真有这种东西!后来想想实现一个也没什么,挺简单的。这里给出一个电路图,喜欢DIY的同学可以参考一下。
PS:据说不做成共地的话,可以有效避免串扰哟~
这里由于我手头的工具不是很齐全,就没折腾着再自己去焊个板子,直接在某宝买了个成品。哪天心情好拆开改装一下也好。
还有一点就是,不论是这个图还是我买的切换器都是用的开关来控制音源选择的,这在物联网时代来说有些low啊。感兴趣的同学可以考虑怎么把它设置成软切换的,或者干脆自动切换的。欢迎大家留言讨论!
AirPlay是苹果公司推出的一套无线音乐解决方案。现在我们手里的iPhone、iPad甚至是Apple Watch等设备还有电脑上的iTunes都支持AirPlay。但是支持AirPlay功能的音响设备都贵得要死,作为屌丝的我自然是感觉买那么贵的音响实在是不合算。前两天突发奇想,如果树莓派可以支持AirPlay的功能,那么不就可以让我享受一把无线音乐的自由自在了吗?于是谷歌了一下,发现还真有解决方案。
总起来说就是使用了一段Perl脚本来实现的功能,当然最终还是调用的C的程序。废话不多说,开始:
1.更新软件列表和软件
sudo apt-get update sudo apt-get upgrade
2.安装各种必须的库
sudo apt-get install libao-dev libssl-dev sudo apt-get install libcrypt-openssl-rsa-perl libio-socket-inet6-perl sudo apt-get install libwww-perl avahi-utils libmodule-build-perl
3.安装Perl Net-SDP
sudo cpan install Net::SDP
4.安装Shairport
git clone https://github.com/hendrikw82/shairport.git cd shairport make
到此为止,所有需要的软件都已经安装好了,如果我们使用如下命令,就可以启动AirPlay服务器了。
./shairport.pl -a myPi
呃,当然,咱们不会就这么结束了,因为你会发现如果你把这条命令敲上去,服务是启动了,也能用了,但是SSH的终端却被程序阻塞了。此时一旦你关闭了SSH终端,那么shairport程序也会被关闭了。这显然不是我们想要的状态啊。
能够解决上述问题的方案就是把它设置成服务。
5.将Shairport设置成为系统服务
首先进入shairport文件夹,make install一下,然后把shairport.init.sample复制到/etc/init.d/目录下
cd shairport sudo make install sudo cp shairport.init.sample /etc/init.d/shairport
修改权限,顺道加个开机启动
cd /etc/init.d sudo chmod a+x shairport sudo 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啊。感兴趣的同学可以考虑怎么把它设置成软切换的,或者干脆自动切换的。欢迎大家留言讨论!
相关文章推荐
- 关于工程中Portrait的设置相关
- BLOCKED和WAITING的区别
- Naive Bayes在mapreduce上的实现(转)
- Ubuntu下安装Libsvm(解决raise Exception('LIBSVM library not found.'))总结汇总
- 状态压缩 + 暴力 HDOJ 4770 Lights Against Dudely
- TortoiseGit disconnected: no supported authentication methods available(server sent:publickey)
- 关于_runWithMainScene:transitionContext:completion错误的测试
- Junk-Mail Filter(并差集删点)
- 基于ffmpeg接口sws_scale抽取视频thumbnail 实例
- AIX6.1用g++安装Poco-1.6.1-all
- jedis高版本的JedisPoolConfig没有maxActive和maxWait
- Flume之Failover和Load balancing原理及实例
- error: RPC failed; result=18, HTTP code = 200 gitlab 百兆以上库下载报错
- 【PAT】1090. Highest Price in Supply Chain (25)
- ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效
- HDU2473 Junk-Mail Filter【并查集删点】
- IO流中available 的理解和使用
- 请使用/main进行编译,以指定包含入口点类型
- XCode ERROR ITMS-90049 This bundle is invalid The bundle identifier contains disallowed characters
- 在非Main Activity中完全退出应用