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

时间:2013-04-05 13:53:33

标签: c linux alsa

我有音频会议设备,有麦克风和扬声器。具有由snd_pcm_hw_params_set_rate_near()设置的相同采样率的麦克风和扬声器都表示8000赫兹。我是否需要将周期大小和周期数设置为相同(两个此类设备相互通信)?

或者,我可以为扬声器选择与麦克风配置不同的周期/周期大小吗? 我如何决定使用哪个时段和期限?

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

(我是ALSA的新手)。

1 个答案:

答案 0 :(得分:4)

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

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

要使用的缓冲区/周期大小取决于您希望如何平衡延迟,功耗和过载/欠载安全性。 延迟与回放设备上的缓冲区大小或捕获设备上的周期siz成正比。 短时间内电力使用量略有增加。 Xrun安全性通过更大的缓冲区增加,并且稍微缩短一段时间。