BOOL CWaveOut::StopPlay() { CloseDev(); StopThread (); return TRUE; }
/*------------------------------------------------------------------------------*/ BOOL CAudioRec::Destroy() { BOOL bRet=FALSE; if(!CloseDev()) goto RET; bRet=TRUE; RET: return bRet; }
//启动录音 BOOL CWaveIn::StartRec() { #ifdef PLAY //开始播放 m_WaveOut.StartPlay(); #endif //返回值 BOOL bRet = FALSE; //启动线程失败 if (!StartThread()) { goto Exit; } //打开录音设备失败 if (!OpenDev()) { goto Exit1; } //准备缓存失败 if (!PerPareBuffer()) { goto Exit2; } /* //开始录音 if (!OpenRecord()) { goto Exit3; } */ //设置返回值 bRet = TRUE; goto Exit; /* Exit3: //释放缓存 FreeBuffer(); */ Exit2: //关闭录音设备 CloseDev(); Exit1: //停止线程 StopThread(); Exit: //返回 return bRet; }
//关闭服务 int CComDev::Stop() { //终止线程 void * res; /*pthread_exit((void *)3);*/ pthread_cancel(m_RecvPt); pthread_join(m_RecvPt, &res); printf("stop RECV thread\n"); //关闭串口 CloseDev(); return TRUE; }
//终止录音 BOOL CWaveIn::StopRec() { //停止录音 CloseRecord(); //休眠1500毫秒 Sleep(800); //释放缓存 FreeBuffer(); //关闭录音设备 if (CloseDev()) { //停止线程 StopThread(); } //返回 return TRUE; }