使用Windows系统API播放声音文件出现间断问题?
我的程序使用的是windows API方法(waveOutOpen, waveOutPrepareHeader,waveOutWrite等)播放声音文件,waveOutOpen()函数中调用回调函数,我是每次取一秒的数据,然后播放,等播放完后收到WOM_DONE事件,然后我就把缓冲区清掉,重新填充缓冲区再播放,结果每播放一秒就间断一下,请问如何解决?
void Play( char* buf, int iSize )
{
m_pWavOutHdr.lpData = buf;
m_pWavOutHdr.dwBufferLength =iSize;
m_pWavOutHdr.dwFlags=0;
m_pWavOutHdr.dwLoops = 0;
waveOutPrepareHeader( m_hWaveOut, &m_pWavOutHdr, sizeof(WAVEHDR) );
waveOutWrite(m_hWaveOut, &m_pWavOutHdr, sizeof(WAVEHDR) );
}
事件函数捕获WOM_DONE事件然后读取数据然后调用Play()函数.
同时我也用到了双缓存来存放输入的数据.
请问这是什么原因