ALSA和PulseAudio声音架构之间的关系是什么?

嗯,这个问题困扰了我很长时间。据我所知,ALSA是一个包含许多声卡驱动程序的软件包,而PulseAudio是一个音频应用程序,用于操作声音数据,如混音或均衡器。
但是为什么alsamixer面板上有一个名为PCM的控制条呢?它实际上通过控制声卡上的芯片来改变音量吗?如果不是,为什么不是由PulseAudio来完成这个任务呢?
ALSA和PulseAudio之间有什么关系呢?

1这个问题的一个好答案可以在https://superuser.com/questions/144648/how-do-alsa-and-pulseaudio-relate找到。 - Adriano Rivolli
1个回答

PulseAudio基本上是建立在ALSA之上并在内部使用它。ALSA本身无法被多个应用程序同时使用。PulseAudio提供了这种功能以及其他功能。
简而言之:
- ALSA - 处理硬件,基本上“拥有”它。 - PulseAudio - 一个软件代理,在您的应用程序和ALSA/OSS子系统之间提供额外的功能(混音、均衡器)。
这张图来自PulseAudio的维基百科页面

PulseAudio operational flow chart


请问您能否告诉我,在这个模型中 ALSA 回环设备的位置是在哪里?(就是通过 sudo modprobe snd-aloop 命令安装的那个) - Adam Ryczkowski
我的猜测是它在ALSA/OSS硬件驱动程序方面。据我所知,它基本上是一个完全由软件实现的声卡。 - meskobalazs
谷歌刚刚把我带到这里,但是"ALSA本身无法被多个应用程序使用"是不正确的。自从2005年发布的alsa 1.0.9版本以来,它默认就可以正常工作了。 - Adam D. Ruppe
据我所知,dmix插件提供混音功能,这就是我说“单独使用”的原因。 - meskobalazs
pavucontrol在这其中扮演什么角色? - Paul Draper
1@PaulDraper pavucontrol是一个用于配置pulseaudio混音的前端应用程序,因此它位于应用层。 - meskobalazs
1自从2005年发布的1.0.9版本起,dmix插件已经与alsa集成并默认启用。从任何真实的度量来看,它本身就是alsa的一部分。暗示alsa在这一点上没有成功地默认执行了16年之久的工作,简直是误导性的。 - Adam D. Ruppe