用树莓派做音频airplay效果不错,老书架音箱又可以用起来了。
实现方式是shairplay-sync,利用HDMI转VGA线上的3.5mm音频输出孔,因为我的树莓派2B的3.5mm音视频输出口没有合适的转接头。
我用的是Arch Linux ARM,需要手动开启HDMI输出。修改/boot/config.txt
:
1
2
3
4
| hdmi_force_hotplug=1
hdmi_drive=2
config_hdmi_boost=4
dtparam=audio=on
|
重启后,用alsamixer把树莓派音量调整到最大值。
AUR里没有针对ARM的shairplay-sync,需要手动编译:
1
| git clone https://github.com/mikebrady/shairport-sync.git
|
1
2
| # 生成configure
autoreconf -i -f
|
1
2
3
4
5
6
| # 针对systemd编译
./configure --sysconfdir=/etc --with-alsa --with-avahi --with-ssl=openssl --with-metadata --with-soxr --with-systemd
# END
|
1
2
3
4
5
6
7
8
| # 如果shairport-sync用户不存在,新增用户和用户组
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
# END
|
airplay默认的服务名和树莓派的hostname一致,可以到/etc/shairport-sync.conf
里修改:
general = {
name = "pi";
}
FAQ
ALSA lib confmisc.c:767:(parse_card) cannot find card ‘0’
树莓派没声音,尝试用mpg123播放mp3时报这个错。解决办法是在/boot/config.txt
里增加dtparam=audio=on
。