有人能解释一下不同声音组件之间的关系以及是否都需要安装它们才能产生声音吗?
例如,我有一个名为“Playback: ... (PulseAudio Mixer)”的混音器和另一个名为“Intel ICH5 Alsa Mixer”的混音器,它们似乎都会影响我的声音。我可以卸载其中一个并让音频继续工作吗?
答案1
这个音频堆栈的简要解释有四个层次。
- 硬件。
- ALSA。
- 脉冲音频
- 应用程序。
ALSA 拥有所有硬件支持。它在与大量不同的东西对话方面非常出色,但在与多个应用程序对话或提供诸如 Pulseaudio 之类的网络感知功能方面则相对糟糕。
在这种堆栈中,PulseAudio 是唯一与主 ALSA 设备交互的东西,因此如果您想发出声音,您要么启动 PulseAudio,要么与其交互。
由于传统原因,PulseAudio 可以接受仅支持 ALSA 的客户端连接(它假装是 ALSA 设备),这使得 Wine、Skype 等可以正常工作(大多数时候)。
理论上你可以移除 PulseAudio。实际上,如果你同时使用多个想要发出噪音的应用程序,这可能会完全破坏你的系统。出于这个原因,我们这里的媒体中心盒只使用 ALSA(另外,我需要原始高清通过 HDMI 访问,而旧的 PulseAudio 过去会干扰 - 现在可能不会了)。
我建议你保留两者。你需要ALSA 和 PulseAudio,尽管存在种种缺陷,但如今表现相当不错。
答案2
有一个类似问题在超级用户网站,以及一个很好的答案。您可以检查一下。不过,我在这里复制了最有用的信息。所有荣誉都归于原始回答者。
ALSA 是内核级声音混音器,它直接管理您的声卡。ALSA 很垃圾(说真的),它可以处理几个(有时只有一个)通道。PulseAudio 是一个软件混音器,位于用户空间之上(就像您运行应用程序一样)。当它运行时,它使用 Alsa 的通道并自行管理每个混音内容、设备、网络设备等。(它就像一个不需要的层)实际上您只能运行 ALSA,但您可能会遇到混音问题,并且 Ubuntu 附带 PA 支持/PA 依赖性。(有些应用程序硬编码使用 PulseAudio,带有自定义补丁等。)(PulseAudio 也比 OSS 或 ALSA 消耗更多的 CPU。)