Webrtc Native C++在root模式下启用PulseAudio,音频采集替换为ALSA模式

一、ALSA与PulseAudio的区别
二、开启PulseAudio权限
1.用root用户执行webrtc程序报错
2.安装程序配置
3.启动程序
三、PulseAudio更换为ALSA

一、ALSA与PulseAudio的区别
ALSA是内核级混音器,它直接管理您的声卡。ALSA本身一次只能处理一个应用程序。当然,有解决这个问题的“ dmix ”。(这是一个ALSA模块。)

PulseAudio 是一个音频服务器,它允许多个应用程序在同一时间共享音频输入和输出设备。PulseAudio是用户领域之上的软件混合器(就像您运行应用程序一样)。在运行时,它使用Alsa(无dmix),并管理各种混合,设备,网络设备以及所有内容。

在2014年,您仍然只能运行ALSA。但是,除非您自己编译应用程序并在各处启用ALSA支持-或使用基于源的发行版(如Gentoo),否则可能会遇到混合问题。发行版中预编译的应用程序通常仅在支持Pulseaudio而非纯ALSA的情况下构建。例如,Ubuntu更喜欢PulseAudio。默认情况下,它带有PulseAudio,因此每个应用程序都被编译为仅使用PulseAudio。

PulseAudio确实有其优势。人们说这对处理网络音频非常有用,它解决了纯ALSA下发生的多通道音频流的一些问题。据认为,为PA开发应用程序也更容易。在最终用户方面,很容易选择新设备,通过应用程序控制音量等。

但是,在默认配置中,它向混合中添加了不小的延迟。对于某些要求低延迟的任务,例如某些游戏和软件,这是一个很大的缺点。

二、开启PulseAudio权限
1.用root用户执行webrtc程序报错:

 

猜你喜欢

转载自blog.csdn.net/weixin_43466192/article/details/128561416