在用API做录音的时候,为什么要选择双缓存呢?
提供两个WAVEHDR *pWaveHdr1,*pWaveHdr2;
我用一个也是可以实现~

解决方案 »

  1.   


    如果你开的缓冲区足够大(足够你录制的时间),用一个没有问题。
    但是,实际情况是我们需要在录制一定内容的声音后,需要保存到文件,或者通过网络传输到远方;这时,如果还是用一个缓冲区,那么就会出现短暂的丢音现象,仔细听是可以听出来的。
    举个例子:1、你开辟了一个缓冲区,它可以容纳10秒钟的声音;
    2、10秒钟到时,程序得到通知,表示缓冲区已经填满;
    3、这时,你需要处理数据,写入文件,或做其它处理;
    4、就在你处理数据的时候,这时的录音数据会丢失,这个时间可能很短,但是仔细也能听出来。
    而用双缓冲区正好可以解决这个问题。