如何解决 Pulseaudio 因缺少库而无法连接混音器的问题?

如何解决 Pulseaudio 因缺少库而无法连接混音器的问题?

我一直在尝试安装 pulseaudio,但似乎找不到关于如何处理 ALSA 的直接答案。PulseAudio 是否在 ALSA 之上运行?我应该先摆脱 ALSA 吗?ALSA 是一个声音服务器,对吗?PulseAudio 也是……正如您所看到的,我有点困惑。无论如何,现在我似乎两者都有 - 但似乎都没有工作 :-\

/etc/asound.conf 包含:

pcm.pulse {
    type pulse
}

ctl.pulse {
    type pulse
}

pulseaudio 确实正在运行。但是,尝试“amixer -Dpulse”会导致

ALSA lib control.c:874:(snd_ctl_open_conf) Cannot open shared library
/usr/lib64/alsa-lib/libasound_module_ctl_pulse.so
amixer: Mixer attach pulse error: No such file or directory`

我检查了一下,文件确实不存在。我但是
/usr/lib32/alsa-lib/libasound_module_ctl_pulse.so

在 VLC 中播放一首歌曲会使流显示在 pavucontrol 中,但没有音频会传到我的扬声器...我参加了群组pulsepulse-access不完全确定它们是做什么用的,但认为它们不会造成伤害),并按照指南进行操作http://pulseaudio.org/wiki/PerfectSetup不折不扣。

更新:

奇怪的是,当我删除/etc/asound.conf,音频流仍然出现在 pavucontrol 中... 那么... pulseaudio 真的在运行吗?我在使用它吗?我怎么知道?

答案1

答案很简单:PulseAudio 是一款声音服务器; ALSA 是内核声音子系统。它们的作用不同——ALSA 为声卡或板载声音芯片提供芯片组驱动程序;PulseAudio 在程序、声音芯片甚至系统之间路由声音。

PulseAudio 是 POSIX 系统的声音服务器。声音服务器基本上是声音应用程序的代理。它允许您在声音数据在应用程序和硬件之间传递时对其进行高级操作。使用声音服务器可以轻松实现诸如将音频传输到另一台机器、更改样本格式或通道数以及将多个声音混合成一个声音等操作。

要使用 PulseAudio,你需要一个声音驱动程序。这可以是 ALSA 或开源软件;这些提供内核声音驱动程序来从计算机输出声音信号。

按照第一步页面调出 PulseAudio 命令行;您可以使用命令行界面测试一切是否运行正常。

# get a pulseaudio commandline
$ pulseaudio -nC

Welcome to PulseAudio! Use "help" for usage information.

# run this to see what sinks are configured
>>> list-sinks

还要检查您的/etc/pulse/daemon.conf/etc/pulse/default.pa配置文件(/usr/local/etc/pulse如果您自己编译并安装了 PA,它们可能会被安装到)。

答案2

我必须承认我非常幸运,没有遇到任何 pulseaudio 问题,因此真的不知道如何解决这些问题。

但是,我可以让您了解 pulseaudio 的基本概念......

基本上,pulseaudio 是声音系统中的额外层,位于现有声源和输出之间。因此,您的系统仍然需要 ALSA,但其理念是想要发出声音的程序有一个(虚拟)pulseaudio 设备。然后,pulseaudio 处理 ALSA 内容。

因此,您无需配置大量程序来处理 ALSA 驱动程序,只需配置大量程序来处理 pulseaudio,并配置 pulseaudio 来处理 ALSA 驱动程序。这据说是“一件好事”。

答案3

此文件是 alsa-plugins-pulseaudio 的一部分。系统已安装 alsa-plugins-pulseaudio-1.1.5-1.fc27.i686,但缺少 x86_64。因此我执行了以下操作:

sudo dnf install alsa-plugins-pulseaudio-1.1.5-1.fc27.x86_64

希望这对您有帮助。

答案4

在 Arch Linux 下升级一些与 ALSA 相关的软件包后,我遇到了类似的错误。

amixer set Master 5%+

ALSA lib dlmisc.c:252:(snd1_dlobj_cache_get)
Cannot open shared library /usr/lib/alsa-lib/libasound_module_ctl_pulse.so
amixer: Mixer attach default error: No such device or address

软件包版本:

  • pulseaudio 4.0-2
  • lib32-libpulse 4.0-2
  • alsa-lib 1.0.27.2-1
  • lib32-alsa-lib 1.0.27.2-1
  • alsa-utils 1.0.27.2-1
  • alsa-插件 1.0.27-2
  • lib32-alsa-插件 1.0.27-1
  • pulseaudio-alsa 2-2

解决方案是更新软件包json-c(从 0.10-2 到 0.11-1)。

相关内容