我在Raspbian上设置Mopidy,因此可以将Raspberry Pi用作Spotify(和本地文件)自动存储塔。我知道Raspberry Pi的模拟音频输出不是很好。

是否可以将所有音频从Raspberry Pi重定向到AirPlay设备(例如Airport Express)?

如果我也可以从命令行执行所有操作,那就太好了,因此我可以设置一些脚本来切换不同的设备。

评论

这是一个很大的问题。我喜欢airplay,在Pi上使用它很有意义。会在这个但很好的问题上挖掘我的自我! +1

据我了解,可以使用PulseAudio完成。我也在挖东西。

看看我们在这里讨论的内容raspberrypi.org/phpBB3/…

我知道这有点题外话-但是,如果您不喜欢远程playbac,那么一些不错的USB DAC呢?

#1 楼

您可以根据需要使用mpd,pulseaudio和raop2模块:


mpd用于管理播放列表,库等(sudo apt-get install mpd
pulseaudio用于管理音频输出:raop用于AirPlay,或任何其他输出设备,例如模拟插孔,HDMI,http流服务等(sudo apt-get install pulseaudio

如果pulseaudio内置的原始raop模块不起作用,则用于pulseaudio的raop2模块/>我必须从源代码构建pulseaudio,以便获取pulseaudio的RAOP模块的更新版本。


这是我所做的,以使其正常工作(它可能会抱怨缺少软件包,只需sudo apt-get install他们):

安装MPD

sudo apt-get install mpd


安装PulseAudio

选择A:您有一个旧的AirPlay设备,或者您不需要UDP流传输。

它更容易但不兼容。

sudo apt-get install pulseaudio


选择B:您想要更好的选择兼容性以及对TCP和UDP流的支持

那么您需要使用raop2模块来实现脉冲eaudio,这意味着要从源代码构建PA。

如果尚未安装git,则构建pulsaudio(请参见官方说明):

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初始设置

现在我们需要设置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 sink的名称。

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设备添加以下块之一。

PulseAudio配置

最后一部分是设置PA:

sudo vi /etc/pulse/client.conf


在底部添加以下行:

sudo vi /etc/pulse/default.pa


这将使pulseaudio启动时加载RAOP发现模块。

最后一步

它现在应该可以工作了。启动MPD(如果正在运行,请先将其停止):

load-module module-raop-discover


稍​​等一下,我的RasPI至少需要10-15秒才能使守护程序正常工作。

更新您的音乐库(并等待其完成):

sudo /etc/init.d/mpd start


随意启用输出(以下内容将列出已配置的MPD输出并启用第一个):

sudo apt-get install mpc
mpc update


现在使用您喜欢的MPD客户端播放一些音乐。我在命令行上使用autospawn = yes,而在手机/平板电脑上使用MPDroid。

mpc outputs
mpc enable 1


首先尝试使pulseaudio工作。只需加载pulseaudio,加载RAOP发现模块,列出接收器,设置默认接收器,然后尝试播放一些内容:

MPD可以使用它。

评论


那正是我想要的!我在Raspberry Pi上运行时不舒服。将尝试此操作并进行更新,以告诉您它是否有效!

–leolobato
14年7月13日在1:25

#2 楼




您似乎正在寻找pulseaudio-module-raop。本指南详细介绍了如何在Ubuntu中进行设置。

评论


一般来说,提供详细说明的答案胜于链接。链接可能会重定位或死亡。更重要的是,稍微解释一下pulseaudio-module-raop可能是个好主意。

– Ramblinjan
13-10-23在5:47

#3 楼

花了一些时间尝试使用Raspbian Jessie在新的Raspberry Pi 3上通过Raop / PulseAudio配置Airplay,但收效甚微。我强烈建议您使用forkd-daapd:


这是原始forkd-daapd 0.19的更新版本,forked-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.