是这样子的,如果正在播放声音时,关闭音频输出设备(执行到waveOutClose)会无响应,代码如下:
m_MMRet = waveOutReset(m_OutDevH);
m_MMRet = waveOutClose(m_OutDevH);
如果去掉m_MMRet = waveOutReset(m_OutDevH),调用m_MMRet = waveOutClose(m_OutDevH)会返回33错误.此情况在xp下会出现,2000下正常.

解决方案 »

  1.   

    我在XP下试过直接waveOutClose,没有出现过问题啊。
      

  2.   

    没有问题的呀,我是在放音的时候直接用waveOutClose。
    要注意的是直接waveOutClose时系统声音缓冲区仍然在使用,也就是它会把正在播放的buffer放完,waveOutReset的作用在于停止缓冲区的使用。
      

  3.   

    那为什么会执行完waveOutReset后,再执行waveOutClose时会停在那里不动了呢
      

  4.   

    http://www.vckbase.com/code/downcode.asp?id=1741
    是在互连网上传输实时语音的vc工程, 语音使用g.729压缩。附件包含一个dll库和test源代码。
    里面有用waveInxxx和waveOutxxx的采集和播放的,可以参考下