我想每 20 毫秒或每 40 毫秒调用 snd_pcm_readi() 并获取音频数据。我想知道如何同步获取我的数据......即每 X 毫秒......
感谢您的任何回复。
对于实时音频读取或播放,您通常会创建一个专用的高优先级工作线程来调用,然后使用一些环形缓冲区。你的线程应该避免锁定。
其他示例:
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
如果您只是从磁盘读取,您将需要足够的缓冲区,然后醒来,看看您是否需要在下次醒来之前阅读更多内容(考虑总延迟)。