是这样子的,如果正在播放声音时,关闭音频输出设备(执行到waveOutClose)会无响应,代码如下:
m_MMRet = waveOutReset(m_OutDevH);
m_MMRet = waveOutClose(m_OutDevH);
如果去掉m_MMRet = waveOutReset(m_OutDevH),调用m_MMRet = waveOutClose(m_OutDevH)会返回33错误.此情况在xp下会出现,2000下正常.
m_MMRet = waveOutReset(m_OutDevH);
m_MMRet = waveOutClose(m_OutDevH);
如果去掉m_MMRet = waveOutReset(m_OutDevH),调用m_MMRet = waveOutClose(m_OutDevH)会返回33错误.此情况在xp下会出现,2000下正常.
要注意的是直接waveOutClose时系统声音缓冲区仍然在使用,也就是它会把正在播放的buffer放完,waveOutReset的作用在于停止缓冲区的使用。
是在互连网上传输实时语音的vc工程, 语音使用g.729压缩。附件包含一个dll库和test源代码。
里面有用waveInxxx和waveOutxxx的采集和播放的,可以参考下