安装Airplay服务
以下的整个安装都是基于一个开源项目进行的,这是项目主页(https://github.com/juhovh/shairplay)。
其中给出了详细的安装方法。
安装依赖环境
通过SSH登录树莓派,分别执行如下命令
sudo apt-get install autoconf automake libtool
sudo apt-get install libltdl-dev libao-dev libavahi-compat-libdnssd-dev
sudo apt-get install avahi-daemon
从GitHub上获取源码
git clone https://github.com/juhovh/shairplay.git
编译和安装
进入对应的目录
cd shairplay
依次执行如下四条指令,进行代码的编译和安装
./autogen.sh
./configure
make
sudo make install
启动
进入软件的当前目录 /home/pi/shairplay
。执行如下命令即可开启服务
shairplay -a your_AirPlay_Name
此时ios设备或者Mac设备连接在同一个Wifi下,便可看到支持AirPlay的设备,名称就是your_AirPlay_Name
。点击连接后,苹果设备的音频信号就通过Wifi传输到树莓派的3.5mm音频口。这里可以接入音响的信号输入口。
完善
为了使树莓派每次上电后可以自动开启AirPlay服务。需要配置自启动,另外消除噪声。
自启动
创建启动脚本文件
依次执行如下命令,建立一个启动脚本文件。
cd /etc/init.d/
sudo touch shairplay
sudo vim shairplay
在其中复制一下内容
#!/bin/bash
#
# This starts and stops shairplay
#
### BEGIN INIT INFO
# Provides: shairplay
# Required-Start: $network
# Required-Stop:
# Short-Description: Free portable AirPlay server implementation similar to ShairPort.
# Description: Free portable AirPlay server implementation similar to ShairPort.
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
# Source function library.
. /lib/lsb/init-functions
DAEMON="/usr/local/bin/shairplay"
DAEMON_ARGS="-a your_AirPlay_Name"
AIRPORT_KEY_DIR="/usr/local/share/shairplay"
[ -x $binary ] || exit 0
RETVAL=0
start() {
echo -n "Starting shairplay: "
start-stop-daemon --start --quiet --chdir $AIRPORT_KEY_DIR \
--exec "$DAEMON" -b --oknodo -- $DAEMON_ARGS
log_end_msg $?
}
stop() {
echo -n "Shutting down shairplay: "
start-stop-daemon --stop --quiet --exec "$DAEMON" \
--retry 1 --oknodo
log_end_msg $?
}
restart() {
stop
sleep 1
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status shairplay
;;
restart)
restart
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
;;
esac
exit 0
其中刚才的脚本文件中的DAEMON_ARGS="-a your_AirPlay_Name"
可以设置自己的名字。
DAEMON="/usr/local/bin/shairplay"
DAEMON_ARGS="-a your_AirPlay_Name"
AIRPORT_KEY_DIR="/usr/local/share/shairplay"
之后通过:wq!
保存更改, :q!
退出编辑器。
加入执行权限
依次执行如下命令。赋予脚本执行权限,并且更新配置信息。
sudo chmod +x /etc/init.d/shairplay
sudo update-rc.d shairplay defaults
执行如下命令,切换到用户目录
cd ~
依次执行如下命令,拷贝airport.key
mkdir /usr/local/share/shairplay
cp shairplay/airport.key /usr/local/share/shairplay
输入一下命令,在etc/rc.local
中添加内容
sudo vim /etc/rc.local
添加的内容如下(在exit 0之前)。
# Don't run multiple instances - start just one screen, named "shairplay":
[[ $(screen -list | grep shairplay) == '' ]] &&
screen -dmS shairplay sh
# Keep shairplay perpetually running. When it crashes, we can just SIGKILL it, and it comes back:
[[ $(ps aux | grep -v grep | grep pts | grep '/usr/bin/shairplay') == '' ]] &&
screen -S shairplay -p 0 -X stuff "while true; do /usr/bin/shairplay --apname=Airamaplay --ao_devicename=default; sleep 2s; done
之后通过:wq!
保存更改, :q!
退出编辑器。
之后通过重启树莓派,就直接可以在苹果设备中选择AirPlay服务了。
消除噪音
如果音响输出有噪声,可以尝试树莓派Audio的pwm模式。
执行如下命令
sudo vim /boot/config.txt
在最后增加如下配置参数
dtparam=audio=on
audio_pwm_mode=2
之后通过CTRL+O
保存更改, CTRL+
退出编辑器。
调整声音命令
alsamixer