一尘不染

ALSA:扬声器和麦克风的周期大小之间的关系

linux

我有一个带麦克风和扬声器的音频会议设备。麦克风和扬声器具有相同的采样率,snd_pcm_hw_params_set_rate_near()例如8000
Hz。我是否需要将两者的周期大小和周期数设置为相同(因为两个此类设备相互通信)?

还是可以为扬声器选择与为麦克风配置的周期/时段不同的周期/时段大小?如何确定要使用的期间和期间大小?

我正在使用snd_pcm_hw_params_set_period_size_near()snd_pcm_hw_params_set_periods_near()API来设置扬声器和麦克风的周期大小和周期。

(我是ALSA的新手)。


阅读 479

收藏
2020-06-07

共1个答案

一尘不染

支持哪种周期大小和缓冲区大小取决于驱动程序,但是如果是同一设备,则回放和捕获设备可能支持相同的参数。

参数是否需要相同取决于您的应用程序访问这些设备的方式。就驾驶员而言,这些设备独立工作。

使用哪种缓冲区/周期大小取决于您如何平衡延迟,电源使用和过载/欠载安全性。延迟与回放设备上的缓冲区大小或捕获设备上的周期ssi成正比。较短的时间会稍微增加功耗。Xrun安全性通过增加较大的缓冲区来增加,而在较短的时间内则有所增加。

2020-06-07