用shairport-sync搭建属于自己的airplay点唱机
事情是这样的。由于搬家,以前的台式机和显示器都送人了,只剩下一对有源音箱,放在角落很久。当然了,还有一个和它一样苦命的ipad2也在吃土。真是扔了可惜,留着占地啊 。于是某日,闲的极为**的我想让这两货能继续发挥点余热。
刚开始的想法很简单。就是买了一个ipad的架子,把音箱插到ipad上,音乐播放用QQ。
效果是这个样事儿的 。。。
晚上的时候,旁边放个小夜灯,柔和的灯光下放着撩骚的音乐。。。太它么有情调了 。
但是,人对于懒的要求是无上限的 。切歌、添加新歌、调节音量都要走过去,手动去操作。没能发挥出懒的极致,这怎么行 。京东上搜了搜,倒是有这方面的设备:wifi的、蓝牙的,而且也不便宜。
在微信里和懂音响的基友咨询了一下,基友推荐了一篇张大妈的原创帖子。
这篇文章我看了看,作者用的Daphile这个软件,这个软件还有配套的手机端,能满足我得要求。但是,这个软件只支持自己下载他的iso,用SD卡做个镜像启动,不能手动安装在我的小pc上 。当然了,人家这种方式对于对linux一窍不通,但是音响方面的专业人士是很方便的。东西虽好,但是无法满足我装B的心。。 忽然想到家里还有个技嘉的NUC,俗称MiniPC 。这个货嘛,装的linux。当初的定位是用squid做透明代理,通过iptables进行端口转发,进行科学上网,当路由器用 (这B装的还可以吧)
基于以上种种情况,我在网上搜索了一下关于苹果airplay的解决方案,而且还真让我给找到了 。Shairport Sync作者的github主页 ,大家从介绍中可以看到,它只支持声音的传输,无法做到视频和图片的。对于我,这已足够 。
其实大家按照作者主页的步骤弄是可以的,但是有一些遗漏的地方,还有很多看不懂英文的朋友,所以我尽量写一份详细的说明,方便大家搭建。
操作系统的选择,Debian的衍生版都可以,比如大家熟知的Ubuntu就是,近两年比较热的Linux Mint也不错。我以Linux Mint 17.3 Rosa为例着重讲一下(为啥选Linux Mint,因为好看 ),当然Debian8和Ubuntu 15.10也可以的,这个东西尽量用新的版本,老版本对新硬件的支持不好(最好是桌面版)。
Linux Mint 17.3 Rosa分两个版本,Cinnamon和MATE。区别就是Cinnamon是Gnome3的桌面,MATE是老版Gnome2的桌面,如果有怀旧情节的人可以选MATE,新人我建议还是Cinnamon,理由很简单(因为好看 )。
安装操作系统的步骤,我就不在这里赘述了,网上一大堆,挑个自己看着顺眼的教程一步步做就好了。
第一步:安装软件依赖软件包:
sudo apt-get install build-essential git
autoconf automake libtool libdaemon-dev libasound2-dev libpopt-dev libconfig-dev
avahi-daemon libavahi-client-dev
libssl-dev
libpolarssl-dev
libsoxr-dev
第二步:克隆github的源代码到本地
第三步:编译安装shariport
cd shairport-sync
autoreconf -i -f
./configure --with-alsa --with-avahi --with-ssl=openssl --with-metadata --with-soxr --with-systemd --with-systemdsystemunitdir=/lib/systemd/system
注:configure的参数,作者主页的写的不全,少了--with-systemdsystemunitdir=/lib/systemd/system这一行,我给补上了。否则编译会出错,其实就是没把变量带进去,导致cp失败
make
sudo make install
getent group shairport-sync &>/dev/null || sudo groupadd -r shairport-sync >/dev/null
getent passwd shairport-sync &> /dev/null || sudo useradd -r -M -g shairport-sync -s /usr/bin/nologin -G audio shairport-sync >/dev/null
以上和作者主页的基本一致,需要补充的命令如下:
sudo cp scripts/shairport-sync /etc/init.d/
sudo update-rc.d shairport-sync defaults 90 10
注:由于新版linux采用systemd取代旧的systemV,所以新版linux已经没有chkconfig命令来配置开机启动了,新版的命令就是update-rc.d。
编辑配置文件:
vi /etc/shairport-sync.conf
general = {
name = "Mike's Boombox";
};
alsa = {
output_device = "hw:0";
mixer_control_name = "PCM";
};
注:配置文件主要设置general和alsa这两部分就可以运行了,如果想深入研究其他参数,可以看看他配置文件里面的注释。
name = "Mike's Boombox"; #这个就是你手机里要显示的设备名称,如下图所示(我用的是Shairport Sync Player):
output_device = "hw:0"; #这里要配置音频输出的设备编号。
这个编号怎么获得呢,要通过这个命令:
aplay -l
显示如下:
大家看一下device的id,比如:
hw:0 代表的是我第一个设备,系统默认的声卡 #一般都是选这个
hw:3 代表我第二个设备HDMI #因为shairport只支持声音的传输,所以不选这个
注:如果aplay命令没有输出或者出现错误提示,一种可能是你声卡禁用了,还有就是你的声卡驱动,linux不支持。解决办法就是自己下载编译alsa驱动,网上有这方面帖子。
mixer_control_name = "PCM"; #这个就是要制定音量控制器的名称,如果你不懂的话就是选默认PCM就好了,瞎选程序启动会有问题
保存好配置之后,运行:
sudo /etc/init.d/shairport-sync start
大功告成 ,拿出iphone从屏幕下方呼出菜单,看到Airplay的字样了吧 :
选择好你搭建好的设备(第二个):
打开QQ音乐,选一首歌试试吧 。由于本人不是发烧友,所以此篇文章只算是抛砖引玉,这个东西可以玩儿的很灵活,没有MiniPC的可以买个蓝莓派,而且官方也是推荐用这个。音频处理这块可以自行添加USB声卡什么的。。。usb音频设备的ID选择可以参考文章
总结一下,歌曲的播放全部由我自己的手机控制、包括音量调节,而且不用额外安装手机客户端。只要是能播放音乐的软件都能通过这个方式进行播放。当然了缺点就是只有苹果设备才能使用这个技术,还有就是播放效果和质量,待进一步使用和观察。目前来说小pc的利用率很高了,算是媒体控制中心,负责音乐点播、视频点播、科学上网、防止dns污染。hdmi接口接的是30几寸电视,插上U盘就能播放720P的MP4格式的电影,效果还不错,不过要买个无线键鼠操作配合使用。由于显卡是集成的,没有硬解压,CPU软解占用率在20%-40%之间,CPU是赛扬4核的,内存4G,硬盘128G固态,没有卡顿现象(至少720P不会)CPU温度保持在30-40度左右,内存占用在800来M。小pc的音频线接的是我的音箱,这样放歌的话也不会跟电视冲突。而且播放器中可以选择音频的输出(声卡或者HDMI),如下图所示:
Redhat系列的操作系统的安装方法,可以参考作者的主页
如果Debian系列的安装方法还有人觉得非常麻烦,官方也有编译好的deb包可以直接下载安装
注:直接下载安装包的话,软件版本肯定不如github上的新,所以使用体验和特性也会不太一样。
我就看看2014
校验提示文案
红之残月
校验提示文案
lwdaq
校验提示文案
TagStory
校验提示文案
ebao23
校验提示文案
琴秀
校验提示文案
北风之手
校验提示文案
0ye_cui
校验提示文案
SeoiGor
校验提示文案
ruianwuyi
校验提示文案
sun1502
校验提示文案
积木老胖
校验提示文案
张大乐
校验提示文案
jokernit
校验提示文案
MrWang__
校验提示文案
mcdona1d
校验提示文案
阳台上的风
校验提示文案
麒麟子
校验提示文案
vanclover
校验提示文案
FlatMushroom
校验提示文案
五泡哥哥
校验提示文案
kxbs
校验提示文案
samasama
校验提示文案
一入泥坑深似海
校验提示文案
琴秀
校验提示文案
想胖的buck
校验提示文案
TagStory
校验提示文案
Accelerant
校验提示文案
Ruicky
校验提示文案
kakamo
校验提示文案
eeliujie
校验提示文案
被迫换昵称
校验提示文案
鹏哥爱喝冰美式
校验提示文案
堕落的虚空
校验提示文案
走鬼三年
校验提示文案
qiqiji
校验提示文案
ebao23
校验提示文案
0ye_cui
校验提示文案
就一神经病
校验提示文案
就一神经病
校验提示文案