5

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

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

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

(我是 ALSA 的新手)。

4

1 回答 1

5

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

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

使用什么缓冲区/周期大小取决于您希望如何平衡延迟、电源使用和过载/欠载安全。延迟与播放设备上的缓冲区大小或捕获设备上的周期大小成正比。用电量会因较短的时间而略有增加。Xrun 安全性通过更大的缓冲区增加,而通过更短的时间段增加一点。

于 2013-04-06T07:58:31.433 回答