正如我们所知,当我们打开设备进行播放时,我们必须在设备运行时向设备提供数据(意味着我们必须匹配设备的速率),否则我们将得到欠载。
"Under-run/over-run can be overcomed by increasing the buffer size"我可以理解如何克服过度运行,但可以通过增加缓冲区大小来消除欠载运行。我们可以使用 snd_pcm_sw_params_set_silence_size 或 snd_pcm_sw_params_set_silence_threshold 来克服欠载?这两者之间的确切区别是什么?任何帮助都要提前感谢。
答案 0 :(得分:1)
静音大小/阈值设置比实际需要更通用。
要使用零重新初始化缓冲区中任何刚刚播放的部分,请将静音阈值设置为零,并将静音大小设置为边界值(可以使用snd_pcm_sw_params_get_boundary
读取)。