我在Raspbian上设置Mopidy,因此可以将Raspberry Pi用作Spotify(和本地文件)自动存储塔。我知道Raspberry Pi的模拟音频输出不是很好。
有没有一种方法可以将所有音频从Raspberry Pi重定向到AirPlay设备(例如Airport Express)?
如果我还可以从命令行执行所有操作,那就太好了,因此我可以设置一些脚本来切换不同的设备。
我在Raspbian上设置Mopidy,因此可以将Raspberry Pi用作Spotify(和本地文件)自动存储塔。我知道Raspberry Pi的模拟音频输出不是很好。
有没有一种方法可以将所有音频从Raspberry Pi重定向到AirPlay设备(例如Airport Express)?
如果我还可以从命令行执行所有操作,那就太好了,因此我可以设置一些脚本来切换不同的设备。
Answers:
如有必要,可以使用mpd,pulseaudio和raop2模块:
sudo apt-get install mpd
)sudo apt-get install pulseaudio
)我必须从源代码构建pulseaudio,以便获得pulseaudio的RAOP模块的更新版本。
这是我所做的工作(它可能会抱怨缺少软件包,只是sudo apt-get install
它们):
sudo apt-get install mpd
它比较容易,但兼容性较差。
sudo apt-get install pulseaudio
然后,您需要raop2模块用于pulseaudio,这意味着从源代码构建PA。
如果尚未安装git,则构建pulseaudio(请参阅官方说明):
sudo apt-get install git intltool autoconf build-essential
cd
git clone https://github.com/hfujita/pulseaudio-raop2
cd pulseaudio-raop2
./bootstrap.sh
make
sudo make install
在我的设置中,我必须手动链接libpulse.so.0:
cd ~/pulseaudio-raop2
sudo rm /usr/lib/arm-linux-gnueabi/libpulse.so.0
sudo ln -s `cd;pwd`/pulseaudio-raop2/src/.libs/libpulse.so.0 /usr/lib/arm-linux-gnueabi/libpulse.so.0
sudo chown root.root /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2
sudo chmod 744 /usr/lib/arm-linux-gnueabi/libpulse.so.0
或者,根据您的喜好:
cd ~/pulseaudio-raop2
sudo rm /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2
sudo mv pulseaudio-raop2/src/.libs/libpulse.so.0 /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2
sudo chown root.root /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2
sudo chmod 744 /usr/lib/arm-linux-gnueabi/libpulse.so.0.16.2
现在我们需要设置MPD:
sudo vi /etc/mpd.conf
在该文件中,设置以下内容:
music_directory "/path/to/your/music"
user "mpd"
bind_to_address "127.0.0.1"
bind_to_address "192.168.x.y"
bind_to_address "2a01:xzy....your IPv6 if you want"
我们将需要编辑输出,但是我们首先需要PulseAudio接收器的名称。
Avahi / zeroconf非常高兴,因为它将启用AirPlay设备的发现(通过zeroconf / mDNS / Bonjour):
sudo apt-get install avahi
现在,我们可以启动pulseaudio并尝试加载RAOP模块:
pulseaudio --start --log-target=syslog -vvvv --log-level=debug
pacmd load-module module-raop-discover
pacmd list-sinks | grep name:
这是我的设置的输出:
name: <raop_output.Freebox-Player.local>
name: <raop_output.Freebox-Server.local>
name: <raop_output.Freebox-Player.local.2>
name: <raop_output.Freebox-Server.local.2>
然后,您需要/etc/mpd.conf
再次编辑并添加以下输出:
audio_output {
type "pulse"
name "Freebox Player"
sink "raop_output.Freebox-Player.local"
format "44100:24:1"
}
为您希望将音乐流式传输到的每个AirPlay设备添加这些块之一。
最后一部分是设置PA:
sudo vi /etc/pulse/client.conf
取消注释autospawn = yes
,这将使PulseAudio在需要时自动启动。
sudo vi /etc/pulse/default.pa
在底部添加以下行:
load-module module-raop-discover
这将使PulseAudio在启动时加载RAOP发现模块。
它应该现在正在工作。启动MPD(如果正在运行,请先停止它):
sudo /etc/init.d/mpd start
稍等一下,我的RasPI至少需要10-15秒才能使守护程序正常运行。
更新您的音乐库(并等待其完成):
sudo apt-get install mpc
mpc update
随意启用输出(以下将列出已配置的MPD输出并启用第一个):
mpc outputs
mpc enable 1
现在,使用您喜欢的MPD客户端播放一些音乐。我ncmpcpp
在命令行上使用,而在手机/平板电脑上使用MPDroid。
以详细级别启动mpd,以最高日志记录级别启动pulseaudio,并监视日志:
mpd --verbose
pulseaudio --start --log-target=syslog --log-level=debug -vvvv
tail -f /var/log/mpd/mpd.log
tail -f /var/log/syslog
尝试首先使pulseaudio工作。只需加载pulseaudio,加载RAOP发现模块,列出接收器,设置默认接收器并尝试播放一些内容:
paplay /usr/share/sounds/alsa/Front_Center.wav
一旦您可以使用pulseaudio,请尝试使其与MPD一起使用。
您似乎正在寻找pulseaudio-module-raop。本指南详细介绍了如何在Ubuntu中进行设置。
花了一些时间尝试使用Raspbian Jessie在新的Raspberry Pi 3上通过Raop / PulseAudio配置Airplay,但收效甚微。我强烈建议您使用forkd-daapd:
这是原始的fork-daapd 0.19(Linux / FreeBSD DAAP(iTunes)媒体服务器)的更新版本,该服务器支持AirPlay设备,Apple Remote(和兼容),MPD,Spotify,mp3流和互联网广播。
安装非常简单,大约10分钟内我就完成了整个工作。下面是安装说明详见这里:
1a. If you use Jessie then add this line to /etc/apt/sources.list:
deb http://www.gyfgafguf.dk/raspbian jessie/armhf/
or
1b. If you use Wheezy then add this line to /etc/apt/sources.list:
deb http://www.gyfgafguf.dk/raspbian wheezy-backports/armhf/
2. Run sudo apt-get update and then sudo apt-get install forked-daapd
3. Edit the config file /etc/forked-daapd.conf and (re)start the server with sudo /etc/init.d/forked-daapd restart
Optional - how to add support for Spotify:
1. Add deb http://apt.mopidy.com/ stable main contrib non-free to /etc/apt/sources.list
2. Run sudo apt-get update and then sudo apt-get install libspotify-dev
3. Restart forked-daapd and enter credentials as described in the instructions.
4. Check the log to see how it is working. It should start loading your playlists.