linux pulseaudio模块关系,ALSA和PulseAudio有何关系?

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-> app1,app2,app3

在典型的Linux系统中,PulseAudio混合来自所有不同应用程序的音频,并将它们向上馈送到ALSA。

ALSA:

内核:ALSA-> dmix->用户名:app1,app2,app3

仅使用纯ALSA,您需要dmix才能混合多个应用程序。没有它,ALSA一次只能播放一个应用程序的音频流。

OSS:

内核:OSS->

用户空间:app1,app2,app3 使用OSS,用户空间应用程序直接与内核中的OSS通信,后者将流本身混合在一起。

综上所述,在当今的典型系统中,ALSA直接与您的声卡对话,而Pulseaudio与您的应用程序和程序对话,并将其输入ALSA。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值