//MMRESULT mmRet = waveInOpen(&m_hWaveIn, /*nDevId*/WAVE_MAPPER, &waveFormat, (DWORD_PTR)WaveInProcFun, (DWORD_PTR)this, CALLBACK_FUNCTION);
//采用回调用的方法,当你异常拔插设备的时候,很容易导致程序死锁 ,
应改为线程处理 ,弄了一两天,终于搞好了。。。。
DWORD threadid; HANDLE handle = CreateThread(NULL,0,RecordProcForKV,this,0,&threadid); //MMRESULT mmRet = waveInOpen(&m_hWaveIn, /*nDevId*/WAVE_MAPPER, &waveFormat, (DWORD_PTR)WaveInProcFun, (DWORD_PTR)this, CALLBACK_FUNCTION); //lint !e620 MMRESULT mmRet = waveInOpen(&m_hWaveIn, /*nDevId*/WAVE_MAPPER, &waveFormat, (DWORD_PTR)threadid, (DWORD_PTR)this, CALLBACK_THREAD); //lint !e620
DWORD CSoundIn:: RecordProcForKV(LPVOID p) { CSoundIn* pSoundIn =(CSoundIn*)p; while ( ! pSoundIn->IsStop() ) {
keivin2006 认证博客专家 C/C vc/qt 音视频 一名c/c++/vc/qt 的小学生,“精通”c,“精通”c++,“精通”vc++,“精通”php,“精通”qt,“精通”java,“精通”python,“精通”c#,“精通”...! 编不下去了,只要见过名字的都我“精通”....为哈,因为我现在是csdn“砖家”了!本人qq: 88520350 qq学习群:930432714 (C/C++/QT/VC学习交流群) 海量学习资料都分享在群里指点学习方向,掌握学习要点,快速提高技术水平, 技术分享,共同学习!