为什么需要 PulseAudio?

Mic*_*l P 26 ubuntu alsa audio pulseaudio

我正在阅读并试图理解为什么有人想要使用 Pulse Audio 而我却无法理解。我读了这个https://www.linux.com/news/hardware/drivers/8100-why-you-should-care-about-pulseaudio-and-how-to-start-doing-it,我还在没有得到令人信服的答案。我有一个设置,一个声卡。(我不需要从多个声卡或向多个声卡多路复用声音)。我知道所有应用程序都是用不同的 API、ALSA、OSS、JACK 等编写的。所以如果我配置所有这些框架来通过脉冲音频路由声音,我得到什么好处,而不是允许所有这些框架直接与声卡对话司机?此外,我没有看到 Pulse Audio 有自己的应用程序 API。所以无论如何我都需要选择一个框架(比如 ALSA)。谢谢

Zee*_*der 34

这都是关于多路复用的。

我不需要将声音从多个声卡复用到多个声卡

啊,但你做到了!如果您希望能够同时播放来自两个源的音频,无论出于何种原因,您都需要多路复用。

OSX 和 Windows 在内核中处理多路复用(但仍在软件中),这就是为什么在这些平台上从未/很少出现这种情况的原因。

但是,在 Linux 上,使用 ALSA 之类的软件,多路复用由特定的声卡/实现/驱动程序决定。

不幸的是,并非所有卡和所有驱动程序都支持开箱即用。

这就是 PulseAudio 的用武之地,无论您的声卡/驱动程序情况如何,都可以在软件中进行多路复用。

没有这个功能,如果你说,直接使用 ALSA sans-PulseAudio,声卡在 Linux 上的 PCM 多路复用支持很差,你一次只能听到一个应用程序的声音。

例如,如果您在 Web 浏览器中播放视频,并在 Pidgin 中收到通知,您将听不到通知声音,因为您的 Web 浏览器已经控制了您的声卡。

通过首先通过 PulseAudio 路由所有声音,可以避免这个问题。

资料来源:我曾经与 ALSA 的 Ubuntu 维护者进行的一次长时间的 IRC 对话,在那里我问了他们你现在问的完全相同的问题。

  • 谢谢@Zee!这是一个很好的答案!但是我读了这个 http://www.alsa-project.org/main/index.php/Asoundrc 并且我看到我可以使用“插件”来实现与 ALSA 配置完全相同的功能。我对其进行了测试,并且能够同时播放多个 aplay 实例。所以我的问题仍然存在,如果我可以用 ALSA 做到这一切,为什么我需要 Pulse Audio:)? (6认同)
  • 嘿@MichaelP,很高兴为您提供帮助。PulseAudio 仍然有用的原因是您可能有多个音频服务器在运行,而不仅仅是 ALSA。例如,如果有人在做音频编辑工作,他们通常会使用 JACK 音频服务器,它更适合低延迟音频工作,但仍然使用 ALSA 来处理一般音频。这可能不适用于您,但 PulseAudio 意味着您不必担心它是如何工作的。如果只为 ALSA 配置它,则必须分别配置每个用例。PulseAudio 与 Alsa 以及您可能使用过的任何其他音频源一起使用。 (5认同)
  • 话虽如此,PulseAudio 可能对您没有特别的帮助,但通常非准系统发行版会为您开箱即用地配置它,因此没有真正的理由用 ALSA 插件替换它。如果您正在运行像 Arch 这样的发行版,您必须自己从头开始配置所有内容,请务必改用 ALSA 插件。 (2认同)

小智 6

自从在 alsa 中引入Dmix后,pulseaudio 就变得毫无用处了。以某种方式在内部深处启用 Dmix 的 Bare alsa(我不必设置任何内容)对我来说效果更好。例如,在改变声级时没有延迟。

如果您使用的是最近使用的 alsa 并且感觉良好,只需卸载pulseaudio。

  • 刚刚遇到这个弹出问题,卸载了pulseaudio,现在一切听起来都很好(从多个来源播放也很好)。Alsa 驱动程序 4.4.0-104,utils 1.1.0 (2认同)
  • WTaF。那么为什么发行版仍然启用pulseaudio多路复用守护进程?它是滞后的、有问题的自动对焦,并且是造成太多声音问题的罪魁祸首!我禁用守护进程而不是卸载整个包,因为存在与 ALSA 配置的依赖关系,该包似乎做得很好。 (2认同)
  • @sezanzeb,如果要在 Firefox 上使用 PA 之间进行选择,我将停止使用 Firefox 并寻找其他东西。 (2认同)

Tim*_*Tea 5

你没有。它是一个对大多数用户来说完全没有必要的中间件。大多数需要音频的应用程序可以直接使用 ALSA 就好了。ALSA 可以很好地处理基本多路复用之类的事情(尽管它可能需要一个插件)。在我的系统上,我没有安装pulseaudio,我可以玩视频游戏并在后台播放来自 Rhythmbox 的音乐,没问题。它与 ALSA 一起开箱即用,无需复杂的设置。

我会向任何遇到任何音频相关问题的人推荐:首先要尝试的是删除pulseaudio。我最近自己遇到了一些音频问题,将其取出并立即消失。

Tbh,很难想到有人实际上需要pulseaudio的情况。对于只希望声音与他们的桌面应用程序一起工作的“典型”家庭系统用户来说,ALSA 本身是非常合适的。对于想要执行更复杂音频任务的更高级用户,或者需要专业品质音频的用户,JACK 显然是您想要的。脉搏,imo,似乎相当臃肿和多余。

  • 同意,在 Fedora 中删除 `alsa-plugins-pulseaudio` 包后,声音问题就消失了 (2认同)