当前位置:编程学习 > VB >>

Vb中利用VFW同时捕获视频和图像

拜托VB编程高手,帮我解决利用VFW同时捕获视频和图像。
我先表谢意了! --------------------编程问答-------------------- 帮顶 --------------------编程问答-------------------- 1.创建并初始化视频捕获窗口
'创建捕获窗口。变量capWnd为公共变量,用于返回捕获窗口的句柄
capWnd=capCreateCaptureWindowA("XBW", &H50000000, 0, 0, 300, 240, Me.hWnd, 0) 
SendMessage capWnd, &H40A, 0, 0  '连接设备
SendMessage capWnd, &H434, 66, 0  '设置预览速度
SendMsssage capWnd, &H432, 1, 0  '开始预览模式
2.捕获视频
   SendMessage capWnd, &H414, 0, "C:\x.avi"  '设置待保存的AVI文件
   SendMessage capWnd, &H43E, 0, 0  '捕获视频流
4.终止视频捕获
   SendMessage capWnd, &H417, 0, "C:\x.avi"  '保存视频和音频
5.抓取单帧图像
   SendMessage capWnd, &H419, 0, "C:\x.bmp"  '抓图、单帧保存
6.消毁视频窗口
   SendMessage capWnd, &H40B, 0, 0  '断开设备
   DestroyWindow capWnd  '销毁视窗
'注意SendMessage声明时最后一个参数的类型为Any --------------------编程问答-------------------- 首先,谢谢cBirdNO1NO1的回复。
我采用的是用Timer1的事件捕获帧的方法:
Sub 开始捕获帧()
    r = mVFW.capFileSetCaptureFile(lWndC, “C:\A.Avi")
   Call capCaptureSingleFrameOpen(frmMain.capwnd)
   Timer1.Tag=Time$'//开始时间
   Timer1.Enabled = True
end sub
-------------------------------
Private Sub Timer1_Timer()
   Dim Ti As Date
   capCaptureSingleFrame (frmMain.capwnd)'//捕获帧
   Ti = Timer1.Tag
   If time >= Ti + "00:03:00" Then'//3分钟后终止捕获
      Timer1.Enabled = False
      capCaptureSingleFrameClose (frmMain.capwnd)
   End If
End Sub
------------------------------
在捕获帧期间保存图像
sub 保存图像()
   Static I As Integer
   r = capFileSaveDIB(lWndC, "C:\” & Cstr(I+1) & ".Bmp")
   I=I+1
end sub
------------------------------
捕获视频帧期间capFileSaveDIB保存的图像总是同一张图像。
能否在不停止捕获视频帧的前提下捕获实时图像?
或换个思路,先停止捕获视频帧,待图像捕获完毕后
再将视频帧追加到已有的视频文件中? --------------------编程问答--------------------

http://www.m5home.com/blog2/blogview.asp?logID=360&cateID=3

这个应该有参考价值吧.

可同步保存为AVI.
补充:VB ,  多媒体
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,