基于Delphi的VFW视频捕获程序的开发
gCapVideoArea,Handle, //窗口句柄
0); //一般为0
为了能够捕获视频,应启动一个捕获帧回调函数VideoStreamCallBack。捕获一个视频流或当前设备状态时,应分别使用以下函数:
CapSetCallbackOnVideoStream; //捕获一个视频流
CapSetCallbackOnError; //得到一个设备错误
CapSetCallbackOnStatus //得到一个设备状态
//定义一个帧捕获回调函数
CapSetCallbackOnFrame (ghCapWnd,LongInt(@VideoStreamCallBack));
//将一个捕获窗口与一个设备驱动相关联,第二个参数是个序号,当系统中装有多个显示驱动程序时,其值分别依次为0到总个数
CapDreiverConnect(ghCapWnd,0);
CapParms,dwRequestMicroSecPerFrame:=40000;
CapParms.fLimitEnabled:=FALSE;
CapParms.fCaptureAudio:=FALSE;//NO Audio
CapParms.fMCIControl:=FALSE;
CapParms.fYield:=TRUE;
CapParms.vKeyAbort:=VK_ESCAPE;
CapParms.fAbortLeftMouse:=FLASE;
CapParms.fAbortRightMouse:=FALSE;
//使设置生效
CapCaptureSetSetup(ghCapWnd,LongInt(@CapParms),sizeof(TCAPTUREPARMS));
CapPreviewScale(ghCapWnd,1);
CapPreviewRate(ghCapWnd,66);
如果要捕获视频流,则要使用函数来指定不生成文件。否则将会自动生成AVI文件:
CapCaptureSequenceNoFile(ghCapWnd);
指定是否使用叠加模式,1为使用,否则为0;
CapOverlay(ghCapWnd,1);
CapPreview(ghCapWnd,1);
End;
在Name为“Closevideo”的Tbutton的Click事件中写入以下代码:
procedure TForm1.ClosevideoClick(Sender:Tobject);
begin
capCaptureAbort(ghCapWnd); //停止捕获
capDriveDisconnect(ghCapWnd); //将捕获窗同驱动器断开
end;
《基于Delphi的VFW视频捕获程序的开发(第3页)》