首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

VFW遇到的黑屏有关问题

2012-01-24 
VFW遇到的黑屏问题我用vfw做了个捕捉视频保存为avi文件的方法,但是保存出来的东西有时候是黑屏的,有时候是

VFW遇到的黑屏问题
我用vfw做了个捕捉视频保存为avi文件的方法,但是保存出来的东西有时候是黑屏的,有时候是正常的,不知道是为什么
//USB摄像头录制AVI
void CImageCapture::OnStartRecord() 
{
// TODO: Add your control notification handler code here
if (!isRecordFileOpen)
{
OPENFILENAME ofn;
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.lpstrFile = recordFile;
ofn.nMaxFile = sizeof(recordFile);
ofn.lpstrFilter = "Video\0*.avi";
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
if(GetSaveFileName(&ofn) == TRUE)
{
strcpy(recordFile, ofn.lpstrFile);
strcat(recordFile, ".avi");
isRecordFileOpen = true; 
SetDlgItemText(IDC_START_RECORD,"停止录像");
capCaptureSequence(hwndVideo);
capFileSaveAs(hwndVideo, recordFile);
isRecording = true;
return;
}
}
if (isRecordFileOpen) //如果文件已经打开
{
if(isRecording)//正在录像
{
threadEnd = true;//停止录像
GetDlgItem(IDC_START_RECORD)->EnableWindow(false);
capCaptureAbort(hwndVideo);
SetDlgItemText(IDC_START_RECORD,"录像");
GetDlgItem(IDC_START_RECORD)->EnableWindow(true);
isRecordFileOpen = false;
isRecording = false;
return;
}
}
}

[解决办法]
ofn.lpstrFilter = "Video\\0*.avi";
看不出那儿有问题,估计楼主要调试一下!看看缺少那些帧!最好将每一帧都保存成图片来分析!

热点排行