如何使用pulseaudio与Raspbmc(Kodi)进行网络流传输?

如何使用pulseaudio与Raspbmc(Kodi)进行网络流传输?

我在 Raspberry Pi 上使用 Raspbmc(带有 Kodi 14)。现在我希望pulseaudio能够将所有 Linux 计算机上的音乐轻松传输到 Raspberry pi。我的问题是,我无法在 Raspberry Pi 上运行pulseaudio。我尝试了以下步骤:

1.安装pulsaudio

sudo apt-get install pulseaudio pulseaudio-module-zeroconf

2. 设置pulsaudio

sudo nano /etc/pulse/default.pa

我添加了以下几行:

load-module module-native-protocol-unix auth-anonymous=1
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.1.0/24 auth-anonymous=1
load-module module-zeroconf-publish

3.启动pulsaudio

首先,我尝试将脉冲作为守护进程启动:

pulseaudio -D

我还尝试在系统范围内启动它:

sudo pulseaudio --system 

但脉冲根本没有出现在我的其他机器上(当它们找到对方时,它的配置是正确的)。这里有什么问题吗?

答案1

你必须编辑system.pa,而不是default.pa。当您登录 RPI 并运行时,ps fax您会注意到这一行:

/usr/bin/pulseaudio --system --realtime --log-target=syslog --log-level=1 --disallow-exit --disable-shm --exit-idle-time=-1

--system就是让pulseaudio读取system.pa而不是读取的 原因default.pa。另请注意,kodi 已经为您启动了一个pulseaudio 实例,您不能简单地启动另一个实例。第一个实例将绑定到0.0.0.0:4713,因此第二个实例将无法绑定!我的kodi不允许我重新启动pulseaudio,因此更改配置文件后需要重新启动。

要使远程接收器实际显示在客户端上,您必须(在客户端上):

  • 加载模块module-zeroconf-discover( pactl load-module module-zeroconf-discover) 并
  • 用于 paprefs启用远程接收器。您必须选中第一个选项卡上paprefs显示的第一个复选框。 (仅仅加载模块对我来说还不够。)
  • 在客户端上重新启动 avahi-daemon。

您可以avahi-browse -a在您的客户端上使用它来查看它是否确实看到您的 pa 服务。重要的一行将如下所示:

+  wlan0 IPv4 root@raspbmc                   PulseAudio Sound Server local

我大约 2 小时前刚刚做了这个,但它对我来说并没有真正的作用。是的,远程接收器出现pavucontrol,我可以将其设置为默认接收器并控制其音量,但 Spotify 无法工作(不播放音乐。这是我唯一的测试。)。当我打开终端并运行它时export PULSE_SERVER=rpi02.local:4713; spotify,它就可以工作。设置方法PULSE_SERVER开箱即用,没有任何零配置的恶作剧。 (但这可能是 Ubuntu 特有的问题。)

如果您打算涉及 wifi,则还有另一个 RPI 特定问题:

通过网络远程使用Raspberry Pi的pulseaudio时,存在音频播放乱码的常见问题。显然,使用 wifi 经常会触发这个问题,但这仍然是一个 Pi 硬件特定问题,并且有可用的解决方案。

  1. 在您的树莓派上:sudo sed -i 's/^\(load-module module-udev-detect\)/\1 tsched=0/' /etc/pulse/system.pa
  2. 在 Pi 上重新启动pulseaudio
  3. 将远程客户端连接到 Pi 上的 pa 服务器

这是一个已知问题,与此解决方案一起在科迪维基。阅读tsched,例如乌布努图SE,我们了解到这是一个时序问题,是由声音硬件引起的。通过让tsched=0Linux 使用不同的计时模型,我相信这对 CPU 来说更加密集。通过这一解决方案,当播放一个远程流时,pulseaudio 服务在我的 B+ 上占用了 17% 的 CPU。

相关内容