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

我有audio会议设备,有一个麦克风和扬声器。 具有与snd_pcm_hw_params_set_rate_near()设置的采样率相同的麦克风和扬声器都是snd_pcm_hw_params_set_rate_near() 。 我是否需要将期限大小和期限数量设置为相同(两个此类设备相互通信)?

或者,我可以为扬声器select不同的周期/周期大小吗? 我如何决定使用哪个期间和期限?

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

(我是ALSA的新手)。

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

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

    要使用哪种缓冲区/周期大小取决于您希望如何平衡延迟,功耗以及过载/欠载的安全性。 延迟与播放设备上的缓冲区大小或捕捉设备上的周期大小成正比。 用电量略有增加,时间缩短。 Xrun的安全性是通过更大的缓冲区来增加的,稍微缩短一点。