我想将我的Raspberry Pi用作可以通过网络播放音频的PulseAudio接收器。

对于初学者来说,我想让Pul​​seaudio在本地运行,并遇到各种错误。我正在使用推荐的Debian映像。

设置和运行PulseAudio的最佳方法是什么?

到目前为止,我的程序如下所示:

安装Pulseaudio和VLC:

sudo apt-get install pulseaudio


配置GStreamer使用PulseAudio接收器:

gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosink pulsesink


加载音频设备的内核模块带有mp3的VLC

sudo modprobe snd_bcm2835


问题

VLC反复破解,打印此错误: >

评论

您能显示出自己得到的错误吗?

#1 楼

我已经使用ALSA接收器在Raspberry Pi上运行它,操作步骤如下:

要安装必要的文件:

sudo apt-get install pulseaudio pulseaudio-module-zeroconf alsa-utils avahi-daemon


要启用ALSA:

sudo modprobe snd-bcm2835                      # load module for single boot
echo "snd-bcm2835" | sudo tee -a /etc/modules  # load module for persistance


设置网络:

sudo nano /etc/pulse/default.pa


取消注释:

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/16
load-module module-zeroconf-publish


要启动Pulseaudio服务器,请使用:

pulseaudio -D


您应该能够测试它的工作原理使用paplay(sudo apt-get install pulseaudio-utils)播放wav文件,也可以通过在系统的声音控制面板中选择接收器来通过网络播放。

您还可以通过以下方式在系统范围内进行设置:

sudo pulseaudio --system 


评论


apt-get安装部分中缺少pulseaudio-module-zeroconf。还应该提到pulseaudio --log-level = debug来解决任何问题。在声源(不是树莓派)上,您应该启动paprefs以便轻松地概览您的pulseaudio conf(如果您有X11)。如有疑问,请不要忘记重启pulseaudio。

–vaab
2012年10月2日18:15



#2 楼

如果希望Pulseaudio在引导时启动,但作为用户级服务,则可以制作systemd单元文件。这可能有所帮助,因为Pulseaudio不希望在系统模式下运行。 https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/

这是我在/etc/systemd/system/pulseaudio.service

[Unit]
Description=PulseAudio Sound System
Before=sound.target

[Service]
User=pi
BusName=org.pulseaudio.Server
ExecStart=/usr/bin/pulseaudio
Restart=always  

[Install]
WantedBy=session.target


Before =告诉它等到sound.target初始化之后。
BusName =将其连接到D-Bus
WantedBy = session.target是一个有用的默认值,但我真的不知道它的作用。

评论


显然,我们可以将其放在〜/ .config / systemd / user / pulseaudio.service中,并将systemd与--user标志一起使用,以避免root特权。

– jchook
19年11月22日在2:05

#3 楼

我很难使用模拟输出让Pulseaudio在Wheezy raspbian(2012-10-28)上运行。以下是我为使其在每个会话模式(而不是系统模式)下工作所做的事情。系统模式可能也可以正常工作,但我没有尝试过。设置服务器将需要更多的工作。我在不同的地方找到了这些信息,希望在这里收集这些信息会对某人有所帮助。

安装Pulseaudio并确保用户(例如eric)是音频组的一部分:

sudo apt-get install pulseaudio pulseaudio-utils
sudo adduser eric audio


更改/etc/asound.conf外观如下所示。默认情况下,这会将pulseaudio设置为用作alsa设备,因此应用程序无需任何其他配置即可使用它。前两个声明(包括注释的声明)在原始文件中。

pcm.mmap0 {
    type mmap_emul;
    slave {
      pcm "hw:0,0";
    }
}

#pcm.!default {
#  type plug;
#  slave {
#    pcm mmap0;
#  }
#}

pcm.pulse { type pulse }
ctl.pulse { type pulse }
pcm.!default { type pulse }
ctl.!default { type pulse }


将以下行添加到/etc/pulse/daemon.conf中:最低质量的方法,但使用大约6%的cpu。 trivial也为我工作,但使用约25%的CPU。其他人也可以工作。后来我不太了解它的必要性,但这似乎是神奇的成分。你可以在这里读更多关于它的内容。

最后,要使歌曲播放之间的声音突然消失,请在/etc/pulse/default.pa中将此行注释为:
/>同时播放两个音源时,仍然会有一些遗漏,如果我发现可以解决的办法,请添加到此答案中。

评论


通过网络播放音频时,PulseAudio使用的CPU约占16%,对我而言却微不足道。

–内森·奥斯曼(Nathan Osman)
13年7月26日在7:50