用VFW做视频采集时,当将程序最小化或者当前焦点不是程序上时那么程序就无法工作了,请问这是怎么回事?
我在网上找了一天答案,说是将CapSetCallbackOnFrame(CapWnd,FrameCallBack);替换为capSetCallbackOnVideoStream(CapWnd,FrameCallBack);可是我替换后capSetCallbackOnVideoStream(CapWnd,FrameCallBack);根本不工作,就是说进入不到回调的那个函数里面。
CapCaptureSequenceNoFile(CapWnd);也写了
大致的代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
CapWnd := capCreateCaptureWindow('viewwindow', WS_VISIBLE or WS_CHILD,
0, //X坐标
0, //Y坐标
panel1.Width, //窗口宽
panel1.Height, //窗口高
panel1.handle, //窗口句柄
0); //通常为0if CapWnd = 0 then exit;
CapSetCallbackOnFrame(CapWnd,FrameCallBack);<--
这里替换为:
//--------------------CapCaptureSequenceNoFile(capWnd);
capSetCallbackOnVideoStream(CapWnd,FrameCallBack);<--这个函数执行了,可是不执行“FrameCallBack”
//--------------------CapParms.dwRequestMicroSecPerFrame:=1;
CapParms.fLimitEnabled:=FALSE;
CapParms.fCaptureAudio:=FALSE;
CapParms.fMCIControl:=FALSE;
CapParms.fYield:=TRUE;
CapParms.vKeyAbort:=VK_ESCAPE;
CapParms.fAbortLeftMouse:=False;
CapParms.fAbortRightMouse:=FALSE;
CapCaptureSetSetup(capWnd,@CapParms,sizeof(TCAPTUREPARMS));
CapPreviewRate(capWnd,33);
CapCaptureSequenceNoFile(capWnd);
CapDriverConnect(CapWnd,0);
capGetVideoFormat(capWnd, @BMPINFO,sizeof(TBitmapInfo));
CapPreviewScale(capWnd,TRUE);
CapOverlay(capWnd,true);
CapPreview(capWnd,true);
CapCaptureSequenceNoFile(CapWnd);end;请各位帮帮忙,看看是怎么回事,该如何更改才能使程序能够最小化或者在后台也能够运行?
我在网上找了一天答案,说是将CapSetCallbackOnFrame(CapWnd,FrameCallBack);替换为capSetCallbackOnVideoStream(CapWnd,FrameCallBack);可是我替换后capSetCallbackOnVideoStream(CapWnd,FrameCallBack);根本不工作,就是说进入不到回调的那个函数里面。
CapCaptureSequenceNoFile(CapWnd);也写了
大致的代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
CapWnd := capCreateCaptureWindow('viewwindow', WS_VISIBLE or WS_CHILD,
0, //X坐标
0, //Y坐标
panel1.Width, //窗口宽
panel1.Height, //窗口高
panel1.handle, //窗口句柄
0); //通常为0if CapWnd = 0 then exit;
CapSetCallbackOnFrame(CapWnd,FrameCallBack);<--
这里替换为:
//--------------------CapCaptureSequenceNoFile(capWnd);
capSetCallbackOnVideoStream(CapWnd,FrameCallBack);<--这个函数执行了,可是不执行“FrameCallBack”
//--------------------CapParms.dwRequestMicroSecPerFrame:=1;
CapParms.fLimitEnabled:=FALSE;
CapParms.fCaptureAudio:=FALSE;
CapParms.fMCIControl:=FALSE;
CapParms.fYield:=TRUE;
CapParms.vKeyAbort:=VK_ESCAPE;
CapParms.fAbortLeftMouse:=False;
CapParms.fAbortRightMouse:=FALSE;
CapCaptureSetSetup(capWnd,@CapParms,sizeof(TCAPTUREPARMS));
CapPreviewRate(capWnd,33);
CapCaptureSequenceNoFile(capWnd);
CapDriverConnect(CapWnd,0);
capGetVideoFormat(capWnd, @BMPINFO,sizeof(TBitmapInfo));
CapPreviewScale(capWnd,TRUE);
CapOverlay(capWnd,true);
CapPreview(capWnd,true);
CapCaptureSequenceNoFile(CapWnd);end;请各位帮帮忙,看看是怎么回事,该如何更改才能使程序能够最小化或者在后台也能够运行?
解决方案 »
- Delphi7 +Report Machine6.5 主从表关系,求高手解答。。。在线等。。。。。
- 加班,散分
- 请问 微软 是不是 帮 FBI 做了一个 "后门" ?????
- 有没有做塑胶注塑行业的富翁。想就业务流程沟通一下!参与就有分。
- 请问如何用网站提供的搜索引擎,知道查找关键字,我用的是WebBrowser1,100分呀
- 当listview的ViewStyle为vsReport,GridLines为true时,怎么在第一列中画上一个图标?
- midas,com+,internetexpress的综合实例--《delphi6分布式应用系统开发--崔晓峰》的最后一例???????
- 关于Batchmove的问题
- resource workshop 在哪里?
- ehlib控件下载
- 寻求达实智能(DAC KQ-500)考勤机的二次开发动态库及说明文档
- iplot控件修改设置
这个是可以,但是还是想把问题弄清楚
为什么capSetCallbackOnVideoStream(CapWnd,FrameCallBack);不能使用呢?
videocap控件就是灰鸽子用过的第三方控件,我找到了
现在这个问题该怎么解决呢?
为什么不能使用capSetCallbackOnVideoStream(CapWnd,FrameCallBack);我找了N个搜索引擎,找了N个问题,发现这个问题一直没被解决
请各位帮帮忙
除了这个方法没别的了吗?
这个问题一直没有得到过有效的解决
videocap23怎么使用的?
这是VFW的,已经查阅了很多资料
对于这个问题始终没有一个完美的解答
期待高手解惑