1。怎样把视频截成avi保存?
2。定时器和线程怎么同时使用?
我的意思是我要同时从摄像头里截AVI和BMP。我一边启动一个线程生成AVI,一边设一个定时器,定时保存位图。结果是,不启动线程,只用定时器,可以保存位图,如果同时启动线程,就连位图也不能截了
我的程序是这样的:
void CCaptruevideoDlg::OnStart()
{
SetTimer(1,67,NULL);//设定定时器,67毫秒抓图一次,一分钟15图
m_CaptureThread = AfxBeginThread(CaptureThreadFunc,m_hWndVideo);
// TODO: Add your control notification handler code here
}
static UINT CaptureThreadFunc(LPVOID lpParam)
{
BOOL Ret = capCaptureSequence((HWND)lpParam);
while (stop==FALSE)
;
if (Ret)
{
Ret = capFileSaveAs((HWND)lpParam, Filename);
}
return 1;
}
void CCaptruevideoDlg::OnTimer(UINT nIDEvent)
{
capFileSaveDIB(m_hWndVideo, temp4);
CDialog::OnTimer(nIDEvent);
}
void CCaptruevideoDlg::OnStop()
{
KillTimer(1);//停止捕捉
stop=TRUE;// TODO: Add your control notification handler code here
}
两个按钮,start开始,stop停止。
请各位指教.
2。定时器和线程怎么同时使用?
我的意思是我要同时从摄像头里截AVI和BMP。我一边启动一个线程生成AVI,一边设一个定时器,定时保存位图。结果是,不启动线程,只用定时器,可以保存位图,如果同时启动线程,就连位图也不能截了
我的程序是这样的:
void CCaptruevideoDlg::OnStart()
{
SetTimer(1,67,NULL);//设定定时器,67毫秒抓图一次,一分钟15图
m_CaptureThread = AfxBeginThread(CaptureThreadFunc,m_hWndVideo);
// TODO: Add your control notification handler code here
}
static UINT CaptureThreadFunc(LPVOID lpParam)
{
BOOL Ret = capCaptureSequence((HWND)lpParam);
while (stop==FALSE)
;
if (Ret)
{
Ret = capFileSaveAs((HWND)lpParam, Filename);
}
return 1;
}
void CCaptruevideoDlg::OnTimer(UINT nIDEvent)
{
capFileSaveDIB(m_hWndVideo, temp4);
CDialog::OnTimer(nIDEvent);
}
void CCaptruevideoDlg::OnStop()
{
KillTimer(1);//停止捕捉
stop=TRUE;// TODO: Add your control notification handler code here
}
两个按钮,start开始,stop停止。
请各位指教.
线程对这个队列进行处理,以防冲突