非蓝牙音箱也可以无线播放iPhone里的音乐,树莓派Airplay支持改造

背景介绍

移动互联网时代,家里的台式机慢慢落灰,它的配套设备“漫步者“音箱也很久没出过声音了。

按《断离舍》原则,这些东西都应该扔掉或送人。

当树莓派到手后,我突然给它想到了一个好的归属,变身”无线音箱“。

改造方法

确定树莓派能出声

树莓派是带有3.5mm音频输出口的,先把漫步者音箱接上去。

通过命令行输入:alsamixer

2016-07-05_15:00:25.jpg

确定声卡设备是否可以访问,而且没有静音(按m可以切换)。

通过键盘的上下箭头可以调整音量,确定没问题后按Esc退出。

下一步在命令行输入

speaker-test -t sine

如果能听到蜂鸣声,那说明没问题,如果听不到,那返回上一个命令调整。

如果还不行,建议输入sudo raspi-config,这样就进入了树莓派的设置面板。

选择第八项Advanced Options并回车,然后选择第六项Audio再回车:

一共有三个选项,一个是Auto,一个是HDMI,一个是3.5mm耳机。

对于这个改造项目来说,选择Auto或3.5mm。

在进行下一步操作前,输入命令:

sudo nano /usr/share/alsa/alsa.conf

搜索找到这一行:

pcm.front cards.pcm.front

修改为:

pcm.front cards.pcm.default

保存文件(ctrl+o)并退出编辑器(ctrl+x)

安装Airplay支持软件Shairport

Shairplay是一个可以把树莓派变成Airplay接收器的软件。它会模拟一个Airplay终端,这样你就可以选择它作为iTune、iPad或iPhone的音频输出。

在安装这个软件前,我们需要安装一系列依赖模块

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

在安装完这些模块之后,可以在你的树莓派根目录下创建一个文件夹,用来放一些安装文件。

比如我在/home/pi/ 目录下创建了一个叫 “source”的文件夹。

在正式的安装Shairport前,如果你想支持更老的iOS6系统设备,需要安装Perl NET-SDP包,命令如下:

git clone https://github.com/njh/perl-net-sdp.git
cd perl-net-sdp
perl Build.PL
./Build
./Build test
sudo ./Build install
cd ..

终于到主角了,从Github里获取最新的shairplay版本并编译安装,命令如下:

git clone https://github.com/abrasive/shairport.git
cd shairport
make

为啥没有直接再加一个make install命令安装呢?

因为这里已经可以测试Airplay功能是否生效了,输入如下命令:

./shairport -a RaspberryPi

这时打开你的iPhone,从底部向上滑动,点击音乐播放,然后点击Airplay图标。

你应该可以看到一个名为Raspberry Pi的设备,点击就可以播放手机上的音乐了。

这时你应该感到很兴奋吧!

别着急享受,把后续工作做完,按下(Ctrl+c)退出测试,然后输入命令:

sudo make install

为了可以开机启动Airplay支持,需要执行最后一步:

sudo cp /home/pi/source/shairport/scripts/debian/init.d/shairport /etc/init.d/shairport

sudo cp /home/pi/source/shairport/scripts/debian/default/shairport /etc/default/shairport

sudo chmod +x /etc/init.d/shairport
sudo chmod +x /etc/default/shairport

sudo update-rc.d shairport defaults

以上命令意思:拷贝安装包里的自动运行脚本文件到对应系统位置,设置为开机自启动。

注意:网上很多教程里都使用sudo cp shairport.init.sample /etc/init.d/shairport ,这个现在不对了,因为shairport版本更新了,之前的文件目录结构变了。

本教程大部分翻译自:http://raspberrypihq.com/how-to-turn-your-raspberry-pi-into-a-airplay-receiver-to-stream-music-from-your-iphone/

附录:让树莓派变成早起音乐闹钟。

除了Airplay播放音乐,我还希望树莓派每天早上7点半开始播放我喜欢的几首轻柔音乐,一直播到8点,用美妙的歌声开启新的一天。

  • 要播放音乐,得有播放器,下载一个Mplayer:

sudo apt-get install mplayer

这是一个命令行的播放器,安装好以后使用”mplayer 音乐文件地址”即可播放,音乐文件地址可以是本地的,也可以是外网的,使用左右箭头可以控制播放进度。

  • 下载或使用scp命令上传你喜欢的音乐到 /home/pi/Music/ ,创建其他目录放音乐也可以。

scp musicfile pi@IPAdress:/home/pi/Music

SCP命令格式:scp filename user@ip:uploadPath

之后会提示你输入密码,确定后就会开始上传文件了。我上传了《贝加尔湖畔》、《500 miles》等等歌曲。

  • 定时播放也很容易,通过crontab -e写一个脚本即可。

    30 07 * * * mplayer /home/pi/Music/*
    00 08 * * * pkill mplayer
    

这两行代码的意思是,7点30分开始使用mplayer播放Music文件夹下的所有文件,在8点的时候杀死mplayer进程停止播放。

如果不放心是否能播放的话可以修改第一行代码为当前时间+1分钟,测试效果。

如果测试ok,修改回去时间,等着第二天早上的音乐吧:)