MFC开发的控件实现自动语音报警和语音对讲
控件中创建了一个对话框来显示视频和语音对讲,创建一个自动语音报警线程用来发送自动报警语音
由于自动语音报警和语音对讲独占音频通道。
如果正在自动语音报警的时候,点击语音对讲,必须关闭线程释放音频通道才能实现语音对讲。我现在是做法是:点击语音对讲,给控件主程序一个值,去控制关闭线程,然后用while()等待返回值,但是发现主程序一直停留在while()哪里大家帮帮忙啊
控件中创建了一个对话框来显示视频和语音对讲,创建一个自动语音报警线程用来发送自动报警语音
由于自动语音报警和语音对讲独占音频通道。
如果正在自动语音报警的时候,点击语音对讲,必须关闭线程释放音频通道才能实现语音对讲。我现在是做法是:点击语音对讲,给控件主程序一个值,去控制关闭线程,然后用while()等待返回值,但是发现主程序一直停留在while()哪里大家帮帮忙啊
BOOL m_Stop=TRUE;//批示线程运行状态
线程函数:
while(m_Stop)
{
}
按钮函数:
m_Stop=TRUE;//如果继续
m_ThreadHandle.Resume();//线程的继续函数,函数名可能不对,但类似m_ThreadHandle是返回的线程的句柄
m_Stop=FALSE;//如果暂停
m_ThreadHandle.Start();//启动线程
++
while(true)
{
if(FLAG_STOP==m_nFlag)
{//先释放资源
sleep(10);
}
else if(FLAG_RERUN==m_nFlag)
{
//重新获取语音通话管道资源,进入语音通话状态
}
else
{ }
}
其实也不用关闭语音线程,只是需要先退出语音通道资源,然后等报警解除后,在把标识位设置回去