如何运行 PulseAudio?
我想把我的 Raspberry Pi 用作 PulseAudio sink,通过网络播放音频。
首先,我想让 Pulseaudio 在本地运行,但遇到了各种错误。我使用的是推荐的 Debian 映像。
让 PulseAudio 启动并运行的最佳程序是什么?
这是我目前尝试过的方法:
程序
到目前为止,我的程序大致如下:
安装 Pulseaudio 和 VLC:
sudo apt-get install pulseaudio
配置 GStreamer 以使用 pulseaudio sink:
gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosink pulsesink
加载音频设备的内核模块
sudo modprobe snd_bcm2835
使用 mp3 运行 VLC
vlc
问题
VLC 反复崩溃,并打印此错误信息:
[0x7503d0] alsa audio output error: cannot write: Broken pipe
28
3
我已经使用 ALSA sink 在我的 Raspberry Pi 上实现了这一功能,具体步骤如下:
安装必要的文件
启用 ALSA:
设置联网:
并取消注释:
要启动 pulseaudio 服务器,请使用
您可以使用 paplay("sudo apt-get install pulseaudio-utils")播放 wav 文件,也可以通过网络在系统的声音控制面板中选择 sink 来测试其是否正常工作。
您也可以在全系统模式下进行设置:
如果希望 pulseaudio 在启动时启动,但作为用户级服务,可以制作一个 systemd 单元文件。这可能会有所帮助,因为 pulseaudio 并不喜欢在系统模式下运行。https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/
以下是我在 /etc/systemd/system/pulseaudio.service 中编写的服务
Before= 让它等到 sound.target 初始化之后。 BusName= 连接到 D-Bus WantedBy=session.target(会话目标)是一个有用的默认设置,但我并不清楚它的作用。
我很难让 pulseaudio 在 Wheezy raspbian (2012-10-28) 上使用模拟输出运行。以下是我为了让它在每个会话模式(而非系统模式)下运行所做的工作。 系统模式可能也能运行,但我还没有尝试过。设置服务器需要更多的工作。我在不同的地方找到了这些信息,希望收集到这里能对大家有所帮助。
安装 pulseaudio 并确保用户(如 eric)属于音频组:
将 /etc/asound.conf 改成下面的样子。 这将设置 pulseaudio 默认用作 alsa 设备,因此应用程序无需额外配置即可使用。 前两个声明(包括注释中的声明)在原始文件中。
在 /etc/pulse/daemon.conf 中添加以下几行:
trivial "是质量最低的方法,但使用约 6% 的 CPU。src-sinc-fastest "对我来说也有效,但会消耗约 25% 的 CPU。 其他方法可能也行得通。 后面这一点我不太明白有什么必要,但它似乎是神奇的成分。您可以 在此阅读更多信息。
最后,要消除歌曲播放间隙的弹出音频,请注释掉 /etc/pulse/default.pa 中的这一行,如下所示:
当同时播放两个音源时,仍会出现一些掉音的情况,如果我发现了解决方法,我会添加到本答案中。