在尝试让我的声音工作时,我想知道 ALSA 和 PulseAudio 的作用。我已经安装并且想知道,例如,他们中的哪一个需要知道我的声卡。
两者似乎都可以互相使用,ALSA 有一个pulseaudio 插件,在我的系统上,alsa 在pulseaudio 中显示为声卡。
两者中的哪一个是做什么的,它们是替代品还是互补品?
Apa*_*che 67
ALSA 是内核级混音器,它直接管理您的声卡。ALSA 本身一次只能处理一个应用程序。当然,还有' dmix ',它是为了解决这个问题而编写的。(这是一个 ALSA 模块。)
PulseAudio 是一个软件混音器,位于用户空间之上(就像您运行应用程序一样)。当它运行时,它使用 Alsa - 没有 dmix - 并自行管理各种混合,设备,网络设备,一切。
在 2014 年,您仍然只能运行 ALSA。但是除非你自己编译你的应用程序并在任何地方启用 ALSA 支持——或者使用像 Gentoo 这样的基于源代码的发行版——否则你可能会遇到混合问题。发行版发布的预编译应用程序通常只支持 Pulseaudio,而不是纯 ALSA。例如,Ubuntu 更喜欢 PulseAudio。它默认带有 PulseAudio,因此每个应用程序都被编译为仅使用 PulseAudio。
PulseAudio 确实有它的好处。人们说它适用于跨网络处理音频,它解决了在纯 ALSA 下发生的多声道音频流的一些问题。据推测,为 PA 开发应用程序也更容易。在最终用户方面,选择新设备、通过应用程序控制音量等都很容易。
然而,在默认配置中,它在混合中增加了相当多的延迟。对于某些需要低延迟的任务(如某些游戏和软件)来说,这是一个很大的问题。
OSS 是这两者的替代品,但它没有在 GPL 下获得许可,这使得它不太可能被发行版大量采用。
插图:
典型的 PulseAudio 驱动的声音系统,如 Ubuntu:
阿尔萨:
开源软件:
总而言之,在您目前的典型系统中,ALSA 直接与您的声卡对话,而 Pulseaudio 与您的应用程序和程序对话并将其输入 ALSA。