请教:VB连接摄像头,第一次正常后,再打开就总是弹出一个视频源界面。

hz03zhuhaowen 2014-12-15 03:36:39
测试背景:在WIN7系统的笔记本,内置摄像头。
连接和关闭摄像头的主要代码:


Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function capCreateCaptureWindow Lib "avicap32.dll" Alias "capCreateCaptureWindowA" (ByVal lpszWindowName As String, ByVal dwStyle As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hwndParent As Long, ByVal nID As Long) As Long
Dim GetPicture As Long
Dim nStyle As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'视频窗口控制消息常数
Const WS_Child = &H40000000: Const WS_Visible = &H10000000
Const WS_Caption = &HC00000: Const WS_ThickFrame = &H40000
Const WM_User = &H400 '用户消息开始号
Const WM_CAP_Connect = WM_User + 10 '连接一个摄像头
Const WM_CAP_DisConnect = WM_User + 11 '断开一个摄像头的连接
Const WM_CAP_Set_PreView = WM_User + 50 '使预览模式有效或者失效
Const WM_CAP_Set_Overlay = WM_User + 51 '使窗口处于叠加模式,也会自动地使预览模式失效。
Const WM_CAP_Set_PreViewRate = WM_User + 52 '设置在预览模式下帧的显示频率
Const WM_CAP_Edit_Copy = WM_User + 30 '将当前图像复制到剪贴板
Const WM_CAP_Sequence = WM_User + 62 '开始录像,录像未结束前不会返回。
Const WM_Cap_File_Set_File = WM_User + 20 '设置当前的视频捕捉文件
Const WM_Cap_File_Get_File = WM_User + 21 '得到当前的视频捕捉文件
Private Const WM_CLOSE = &H10
.......
.......
GetPicture = WS_Child + WS_Visible
nStyle = capCreateCaptureWindow("", GetPicture, 1, 78, 640, 400, Me.hwnd, 0)
SendMessage nStyle, WM_CAP_Connect, 0, 0 '连接摄像头
.......
SendMessage nStyle, WM_CAP_DisConnect, 0, 0 ‘断开摄像头
SendMessage nStyle, WM_CLOSE, 0, 0

弹出的界面如下:
(此处无图,感觉CSDN这个网站越来越不行了,是不是老一辈的程序员走了,新一辈的程序不如老一辈的了。我记得以前是可以上传图片的,现在都好久了还是无法上传图片。我的图片是JPG格式,只有40KB )
言归正传:图片标题叫视频源,捕获源、选择视频设置:Integrated Camera
...全文
239 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧