ALSA:扬声器和麦克风的周期大小之间的关系
Posted
技术标签:
【中文标题】ALSA:扬声器和麦克风的周期大小之间的关系【英文标题】:ALSA: Relation between period size of speaker and mic 【发布时间】:2013-03-27 23:26:44 【问题描述】:我有一个带有麦克风和扬声器的音频会议设备。麦克风和扬声器都具有由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 新手)。
【问题讨论】:
【参考方案1】:支持的周期大小和缓冲区大小取决于驱动程序,但如果是同一设备,则播放和捕获设备可能支持相同的参数。
参数是否需要相同取决于您的应用程序如何访问这些设备。就驱动而言,这些设备是独立工作的。
要使用的缓冲区/周期大小取决于您希望如何平衡延迟、电源使用和过载/欠载安全性。 延迟与播放设备上的缓冲区大小或捕获设备上的周期大小成正比。 用电量会因较短的时间而略有增加。 Xrun 安全性会因缓冲区的增大而提高,而周期会因周期较短而提高。
【讨论】:
您如何确定您的设备支持的缓冲区/周期大小?是否没有一种通用的编程方式来设置适用于任何驱动程序的 alsa 周期/缓冲区大小?以上是关于ALSA:扬声器和麦克风的周期大小之间的关系的主要内容,如果未能解决你的问题,请参考以下文章