7
我正在使用ALSA API snd_pcm_drop()
清除缓冲区。但是当我以后用snd_pcm_prepare()
继续播放音频时,我可以听到原本应该清除的部分音频。 发生这种情况时,我有一个高值snd_pcm_sw_params_set_stop_threshold()
。如果我使用较低的值,则不会播放前一个音频会话的部分音频。ALSA snd_pcm_drop()未清除完整缓冲区
这里发生了什么?如何完全清除缓冲区?
(我是新来的ALSA)
感谢
是否可以使用snd_pcm_drain()而不是snd_pcm_drop()? – 2013-04-05 06:09:02
听起来像一个驱动程序错误,但这是很难说没有更多的信息。 – 2013-04-05 07:00:36
@Multimedia Mike,根据文档,snd_pcm_drain()不会立即删除缓冲区。所以这对我没有用。反正我试过snd_pcm_drain(),但观察结果是一样的。 – 2013-04-05 07:44:36