音频波形显示和滤波(改进).txt
上传用户:amei960
上传日期:2007-02-05
资源大小:143k
文件大小:1k
源码类别:

Audio

开发平台:

Visual C++

  1. 音频波形显示和滤波(改进)
  2. 作者:郭欣阳
  3. 上次做的音频波形显示和滤波程序,在关闭时延过长。我认真看了一下代码,
  4. 发现是void CWaveIn::CloseData()函数出了错,现在修整如下:
  5. void CWaveIn::CloseData()
  6. {
  7. if ( !bStartData ) //就是这里,原来是 if ( bStartData )
  8. {
  9. return;
  10. }
  11. if(!m_hWave)
  12. {
  13. return;
  14. }
  15. MMRESULT mRet = waveInReset(m_hWave);
  16. if( mRet != MMSYSERR_NOERROR )
  17. {
  18. return;
  19. }
  20. bStartData = FALSE;
  21. }
  22. 同时也对程序进行了优化:
  23. 1、将线程模式改为回调函数的形式。
  24. 这样就避免了启动线程和关闭线程的控制,使用回调函数将WOM_OPEN、WOM_CLOSE、
  25. WOM_DONE消息的处理交给系统,减小了我们程序出错的可能性
  26. 2、在CWaveIn类里面,原来是在每次Start的时候,都分配内存;现在改为只在第一
  27. 次Start的时候才分配内存,只要类不被析构,分配的内存不会被释放,可以循环再
  28. 用,这样就减少了内存分配释放的操作,增加了程序的效率,同时也减少了程序出现
  29. 错误的概率。