以下程序不能够预览,但可以保存捕获到.avi文件。///*
m_bInit=FALSE;
CWnd *pWnd=AfxGetMainWnd()->GetDlgItem(IDC_VIDEO);//得到预示窗口指针
CRect rect;
pWnd->GetWindowRect(&rect); // 得到窗口大小
m_hCapWnd=capCreateCaptureWindow((LPTSTR)_T("视频捕捉"),
WS_CHILD|WS_VISIBLE,
0,0,0,0,
m_hWnd,0); // 设置预示窗口
ASSERT(m_hCapWnd); capSetUserData(m_hCapWnd,this); char szDevName[50];
char szDevVersion[50];
for(int i=0;i<9;i++)
{
capGetDriverDescription(i, szDevName, 50, szDevVersion, 50);
int a = 0;
} //Microsoft WDM Image Capture (Win32) //唯一的捕获设备 if(capDriverConnect(m_hCapWnd,0))
{
// 连接第0 号驱动器 CAPTUREPARMS CapParms = {0};
capCaptureGetSetup(m_hCapWnd, &CapParms, sizeof(CapParms));
CapParms.vKeyAbort=0;
CapParms.fAbortLeftMouse =FALSE;
CapParms.fAbortRightMouse = FALSE;
CapParms.fCaptureAudio = FALSE;
CapParms.fYield = TRUE;
CapParms.wPercentDropForError = 100;
capCaptureSetSetup(m_hCapWnd, &CapParms, sizeof(CapParms));
BITMAPINFO m_BmpInfo;
capGetVideoFormat(m_hCapWnd, &m_BmpU, sizeof(m_BmpInfo)); m_bInit=TRUE; //得到驱动器的性能
capDriverGetCaps(m_hCapWnd,sizeof(CAPDRIVERCAPS), &m_CapDrvCap); //失败,但我没有停止它 if(m_CapDrvCap.fCaptureInitialized)
{// 如果初始化成功
//capSetCallbackOnVideoStream(m_hCapWnd,capVideoStreamCallback);
capSetCallbackOnFrame(m_hCapWnd,capVideoStreamCallback);
capGetStatus(m_hCapWnd, &m_CapStatus,sizeof(m_CapStatus)); // 得到驱动器状态
::SetWindowPos(m_hCapWnd, NULL, 0, 0, m_CapStatus.uiImageWidth,
m_CapStatus.uiImageHeight, SWP_NOZORDER | SWP_NOMOVE); capPreviewRate(m_hCapWnd,30); // 设置预示帧频
capPreview(m_hCapWnd,TRUE); // 设置预示方式
m_bInit=FALSE;
CWnd *pWnd=AfxGetMainWnd()->GetDlgItem(IDC_VIDEO);//得到预示窗口指针
CRect rect;
pWnd->GetWindowRect(&rect); // 得到窗口大小
m_hCapWnd=capCreateCaptureWindow((LPTSTR)_T("视频捕捉"),
WS_CHILD|WS_VISIBLE,
0,0,0,0,
m_hWnd,0); // 设置预示窗口
ASSERT(m_hCapWnd); capSetUserData(m_hCapWnd,this); char szDevName[50];
char szDevVersion[50];
for(int i=0;i<9;i++)
{
capGetDriverDescription(i, szDevName, 50, szDevVersion, 50);
int a = 0;
} //Microsoft WDM Image Capture (Win32) //唯一的捕获设备 if(capDriverConnect(m_hCapWnd,0))
{
// 连接第0 号驱动器 CAPTUREPARMS CapParms = {0};
capCaptureGetSetup(m_hCapWnd, &CapParms, sizeof(CapParms));
CapParms.vKeyAbort=0;
CapParms.fAbortLeftMouse =FALSE;
CapParms.fAbortRightMouse = FALSE;
CapParms.fCaptureAudio = FALSE;
CapParms.fYield = TRUE;
CapParms.wPercentDropForError = 100;
capCaptureSetSetup(m_hCapWnd, &CapParms, sizeof(CapParms));
BITMAPINFO m_BmpInfo;
capGetVideoFormat(m_hCapWnd, &m_BmpU, sizeof(m_BmpInfo)); m_bInit=TRUE; //得到驱动器的性能
capDriverGetCaps(m_hCapWnd,sizeof(CAPDRIVERCAPS), &m_CapDrvCap); //失败,但我没有停止它 if(m_CapDrvCap.fCaptureInitialized)
{// 如果初始化成功
//capSetCallbackOnVideoStream(m_hCapWnd,capVideoStreamCallback);
capSetCallbackOnFrame(m_hCapWnd,capVideoStreamCallback);
capGetStatus(m_hCapWnd, &m_CapStatus,sizeof(m_CapStatus)); // 得到驱动器状态
::SetWindowPos(m_hCapWnd, NULL, 0, 0, m_CapStatus.uiImageWidth,
m_CapStatus.uiImageHeight, SWP_NOZORDER | SWP_NOMOVE); capPreviewRate(m_hCapWnd,30); // 设置预示帧频
capPreview(m_hCapWnd,TRUE); // 设置预示方式
解决方案 »
- 存储过程参数问题
- 向虚拟桌面发送消息的问题
- 如何在fastreport的预览界面中实现设计报表?
- 请问:delphi有自带的做setup.exe(打包)吗?
- 请问如何得到inifile文件的所有小节名?
- 用clientdataset1.getnextback获得下一个数据包后,如何知道他已下载完所有的数据包
- 求高手指导小朋友,delphi下excel导入和导出
- 如何制作这样的menu控件。
- 我用ado访问sql server2000数据库,当在插入,更新,删除时,突然停电或其他原因,会有什么后果?如何解决?
- 在DELPHI中如何打开VF自由表
- 我没有插入重复的键怎么会提示插入重复了呢
- DBgrid (望高手指点)
你设低点看看
普通摄像头大概15帧。