使用Shairport Sync将手上只能插3.5mm音频接口的普通音箱支持苹果airplay2推流
原作链接:github地址
1.前置准备:
1.1:一个普通音箱(废话)。
1.2:一个刷好linux的盒子,不管是机顶盒还是树莓派还是什么其他的都无所谓,系统我这里用的是debian,下面教程都是关于debian系统的命令演示,若你使用的是其他系统可以参考作者的教程。
(这玩意儿在闲鱼上应该二三十块能收到)。
1.3:一个安装了ssh工具且能正常连接局域网的电脑。
2.开始安装:
2.1:连接上linux盒子,确保可用的github网络访问。
2.2:先更新一下系统支持包:
$ sudo apt update
$ sudo apt upgrade
2.3:安装一下依赖包喽:
$ apt install --no-install-recommends build-essential git autoconf automake libtool \
libpopt-dev libconfig-dev libasound2-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev \
libplist-dev libsodium-dev libavutil-dev libavcodec-dev libavformat-dev uuid-dev libgcrypt-dev xxd
2.4:clone一下软件包并安装:
2.4.1:安装一下需要的nqptp
插件:
$ cd /root
$ git clone https://github.com/mikebrady/nqptp.git
$ cd nqptp
$ autoreconf -fi
$ ./configure --with-systemd-startup
$ make
# make install
# systemctl restart nqptp
# systemctl restart shairport-sync
下面开始安装Shairport Sync本体:
$ cd /root
$ git clone https://github.com/mikebrady/shairport-sync.git
$ cd shairport-sync
$ autoreconf -fi
$ ./configure --sysconfdir=/etc --with-alsa \
--with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-airplay-2
$ make
$ make install
2.5:启动一下试试:
$ shairport-sync
#停止运行的话按住 ‘ ctrl + C ’即可
到这一步应该可以在Apple设备上看到一个名为“Shairport Sync”的AirPlay输出。放点歌看看有没有声音,有声音的话就没问题,有问题的参考下一步
2.5:配置一下:
首先打开配置文件:
$ sudo vi /etc/shairport-sync.conf
然后找到文件开头 [General Setting] 中的 “ name ” 标签,将其改为你想要在苹果设备中看到的名字。
如果在2.4中你无法听到声音的话你可以修改 [alsa] 标签中的 “ output_device ”部分,将其注释取消,然后将这部分更改为自己音频设备硬件名称,如下图:
然后:"esc" ➡️ ":wq" 保存退出。
2.6配置一下开机自启:
创建一个自启服务文件:
$ vi /lib/systemd/system/shairport-sync.service
然后填入如下启动脚本:
[Unit]
Description=Shairport Sync - AirPlay Audio Receiver
After=sound.target
Requires=avahi-daemon.service
After=avahi-daemon.service
Wants=network-online.target
After=network.target network-online.target
[Service]
ExecStart=/usr/local/bin/shairport-sync --log-to-syslog
User=shairport-sync
Group=shairport-sync
[Install]
WantedBy=multi-user.target
最后启用一下自启脚本:
$ sudo systemctl enable shairport-sync
$ sudo systemctl start shairport-sync
检查下自启服务状态正常即可: