我有音频会议设备,有麦克风和扬声器。具有由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的新手)。
答案 0 :(得分:4)
支持哪些时段大小和缓冲区大小取决于驱动程序,但如果它是同一设备,则播放和捕获设备可能支持相同的参数。
参数是否需要相同取决于应用程序访问这些设备的方式。就驱动程序而言,这些设备可以独立工作。
要使用的缓冲区/周期大小取决于您希望如何平衡延迟,功耗和过载/欠载安全性。 延迟与回放设备上的缓冲区大小或捕获设备上的周期siz成正比。 短时间内电力使用量略有增加。 Xrun安全性通过更大的缓冲区增加,并且稍微缩短一段时间。