5

我想每 20 毫秒或每 40 毫秒调用 snd_pcm_readi() 并获取音频数据。我想知道如何同步获取我的数据......即每 X 毫秒......

感谢您的任何回复。

4

1 回答 1

3

对于实时音频读取或播放,您通常会创建一个专用的高优先级工作线程来调用,然后使用一些环形缓冲区。你的线程应该避免锁定。

其他示例:

http://www.alsa-project.org/alsa-doc/alsa-lib/_2test_2latency_8c-example.html#a36

http://www.alsa-project.org/alsa-doc/alsa-lib/_2test_2pcm_8c-example.html

如果您只是从磁盘读取,您将需要足够的缓冲区,然后醒来,看看您是否需要在下次醒来之前阅读更多内容(考虑总延迟)。

于 2010-10-09T00:35:57.663 回答