如果不在回调中,我应该在哪里执行PortAudio中的文件IO工作负载

时间:2016-08-09 00:06:14

标签: portaudio

我正在使用PortAudio来录制多声道音频数据。我想将每个通道的数据保存为单独的文件。因此,我必须在程序中的某个地方执行一些文件IO工作。由于文档建议不要在回调函数中执行任何IO工作,因为它们是以高频率调用的。

那么,执行IO工作的正确方法是什么?我应该开始另一个线程吗?

提前感谢您阅读我的帖子的时间!

1 个答案:

答案 0 :(得分:0)

这就是我要做的事情:

1)为每个频道准备一个缓冲区。这些缓冲区将是您的存储缓冲区,而不是回调中的缓冲区。我建议在paData结构中声明这些缓冲区。您必须根据您拥有的存储空间或时间限制来确定缓冲区长度。

2)停止录制时,让它调用一个使文件IO工作的方法。

3)使用步骤1中的缓冲区并写入文件。

4)重复