我正在使用 Windows 多媒体 API 来记录和处理波形音频(waveInOpen
和朋友)。我想以循环方式使用少量缓冲区。
我知道您应该waveInPrepareHeader
在向设备添加缓冲区之前使用,并且您应该waveInUnprepareHeader
在 wave 设备“将缓冲区返回给应用程序”之后以及在您解除分配之前调用。
我的问题是,我是否必须取消准备并重新准备才能重新使用缓冲区?或者我可以将以前使用的缓冲区添加回设备吗?
另外,我在哪个线程上执行此操作有关系吗?我正在使用回调函数,它似乎是在属于音频系统的工作线程上调用的。在回调期间,我可以在该线程上调用waveInUnprepareHeader
、waveInPrepareHeader
和吗?waveInAddBuffer