|
分享源码
界面截图: |
|
是否带模块: |
调用了模块 |
备注说明: |
- |
本帖最后由 w793586737 于 2022-7-29 15:07 编辑
*USB摄像头 使用 VideoCapX 控件 以及 H.264编码器。 能使录像能力做到最优化!{:4_255:} 附件包含 VideoCapX 控件支持库 & VideoCapX说明 &H.264编码器 & e源码! 640*480可做到录制1分钟大约2M容量。 窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集 | | | | 变量名 | 类 型 | 数组 | 备 注 | 计次 | 整数型 | | 月份日期 | 文本型 | | 时间 | 日期时间型 | | 录制 | 逻辑型 | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | i | 整数型 | | | o | 整数型 | | | 编码器 | 逻辑型 | | | 默认摄像头 | 文本型 | | |
存储位置 = 读配置项 (取运行目录 () + “\IP配置.ini”, “储存地址”, “地址”, )组合框1.内容 = 存储位置 f = 读配置项 (取运行目录 () + “\IP配置.ini”, “签名”, “站点名称”, )状态条1. 置文本 (1, 存储位置 )如果真 (f = “”)信息框 (“系统检测到您是新用户!快给软件取一个名称吧!”, 0, , )载入 (窗口2, , 真)结束 ()如果 (VideoCapX1. GetVideoDeviceCount () = 0 )信息框 (“无视频输入源,请检查视频输入源!”, 0, “提示:”, 0 )结束 ()默认摄像头 = 读配置项 (取运行目录 () + “\IP配置.ini”, “摄像头”, “默认”, “0”)计次循环首 (VideoCapX1. GetVideoDeviceCount (), i ) 当前视频设备. 加入项目 (VideoCapX1. GetVideoDeviceName (i - 1 ), )如果真 (到整数 (默认摄像头 ) = i - 1 )当前视频设备.现行选中项 = i - 1 计次循环尾 ()计次循环首 (VideoCapX1. GetVideoCodecCount (), o ) 当前视频设备1. 加入项目 (VideoCapX1. GetVideoCodecName (o - 1 ), )调试输出 (VideoCapX1. GetVideoCodecName (o - 1 )) 如果真 (寻找文本 (VideoCapX1. GetVideoCodecName (o - 1 ), “x264vfw”, , 假) ≠ -1 )当前视频设备1.现行选中项 = o - 1 编码器 = 真 计次循环尾 ()如果真 (编码器 = 假)信息框 (“尚未安装[x264vfw - H.264/MPEG-4 AVC codec]编码器,请安装后在使用!”, #警告图标, , )结束 ()摄像头初始化 ()透明标签1.标题 = “ing”编辑框1. 获取焦点 ()华侨_窗口特效_加载效果 (_启动窗口, 1, 33, 11 )华侨_加载皮肤_MACOSD白 ()变量名 | 类 型 | 静态 | 数组 | 备 注 | i | 整数型 | | | o | 整数型 | | | Camera_parameters | 变体型 | | |
VideoCapX1.VideoDeviceIndex = 当前视频设备.现行选中项 VideoCapX1.PreviewScale = 真 VideoCapX1.CaptureRate = 16 VideoCapX1.Connected = 真 VideoCapX1.Preview = 真 VideoCapX1.CaptureAudio = 假 VideoCapX1.VideoCodecIndex = 当前视频设备1.现行选中项 VideoCapX1. SetVideoFormat (640, 480 ) _启动窗口.标题 = “camera:” + 当前视频设备. 取项目文本 (当前视频设备.现行选中项 ) + “ 640*480 16FPS ” + “ Zip:” + 当前视频设备1. 取项目文本 (当前视频设备1.现行选中项 )如果 (VideoCapX1.IsCapturing = 真)信息框 (“请先结束录制在尝试!”, #警告图标, , )VideoCapX1. ShowVideoSourceDlg ()存储位置 = 组合框1.内容 如果 (存储位置 = “”)信息框 (“您还没有设置视频存储地址,请设置!”, #询问图标, , )高级选择夹1.现行子夹 = 1 如果 (文件是否存在 (存储位置 ) = 真)如果 (编辑框1.内容 = “”)信息框 (“请输入正确序列号!”, #警告图标, , )月份日期 = 到文本 (取年份 (取现行时间 ()) ) + “-” + 到文本 (取月份 (取现行时间 ()) )如果真 (文件是否存在 (存储位置 + “\” + 月份日期 ) = 假)创建目录 (存储位置 + “\” + 月份日期 )判断是否成功 = 文本转换 (编辑框1.内容) + “_” + f + “_” + 到文本 (取现行时间 ()) + “.avi”水印SN = “ / ” + 编辑框1.内容 VideoCapX1.CapFilename = 存储位置 + “\” + 月份日期 + “\” + 判断是否成功 录像 = VideoCapX1. StartCapture ()如果 (录像 = 真)连续赋值 (真, 编辑框1.禁止, 按钮1.禁止, 录制, 图片框1.播放动画, 视频设置1.禁止, 视频设置2.禁止, 视频设置.禁止, 分组框2.禁止, 分组框3.禁止 )计时 = 真 透明标签1.文本颜色 = #蓝色 连续赋值 (0, 计时_S, 计时_M, 计时_H ) 结束录像.禁止 = 假 信息框 (“无效编码器,请重新选择编码器!”, #警告图标, , )信息框 (“无效存储地址!,请确认” + 存储位置 + “是否存在!”, #警告图标, , )变量名 | 类 型 | 静态 | 数组 | 备 注 | i | 整数型 | | | 输出数据 | 文本型 | | | 出现次数 | 整数型 | | |
出现次数 = 文本_取出现次数 (原数据, “/”)如果 (出现次数 > 0 )输出数据 = 原数据 计次循环首 (出现次数, i )输出数据 = 文本替换 (输出数据, 寻找文本 (输出数据, “/”, , 假), 1, “-”)计次循环尾 ()输出数据 = 原数据 调试输出 (输出数据)返回 (输出数据 )变量名 | 类 型 | 静态 | 数组 | 备 注 | 大小 | 双精度小数型 | | | 局_索引 | 整数型 | | | 表格数量 | 整数型 | | |
VideoCapX1. StopCapture ()大小 = VideoCapX1. GetCapFileSize () ÷ 1000000 如果 (文件是否存在 (存储位置 + “\” + 月份日期 + “\” + 判断是否成功 ) = 真 且 大小 > 0 )局_索引 = 获取_列表框. 插入表项 (, , , , , )表格数量 = 获取_列表框. 取表项数 ()获取_列表框. 置标题 (局_索引, 0, 到文本 (表格数量 )) 获取_列表框. 置标题 (局_索引, 1, 删首尾空 (编辑框1.内容 )) 获取_列表框. 置标题 (局_索引, 2, 存储位置 + “\” + 月份日期 + “\” + 判断是否成功 )获取_列表框. 置标题 (局_索引, 3, 到文本 (取整 (计时_H )) + “:” + 到文本 (取整 (计时_M )) + “:” + 到文本 (取整 (计时_S )) )获取_列表框. 置标题 (局_索引, 4, 取文本左边 (到文本 (大小 ), 4 )) 获取_列表框. 保证显示 (表格数量 - 1 )获取_列表框. 选择表项 (表格数量 - 1 )编辑框1.内容 = “”编辑框1. 获取焦点 ()计时 = 假 水印SN = “”透明标签1.文本颜色 = #绿色 透明标签1.标题 = “PASS”计时 = 假 透明标签1.文本颜色 = #红色 透明标签1.标题 = “FALL”连续赋值 (假, 编辑框1.禁止, 按钮1.禁止, 录制, 图片框1.播放动画, 视频设置1.禁止, 视频设置2.禁止, 视频设置.禁止, 分组框2.禁止, 分组框3.禁止)编辑框1. 获取焦点 ()结束录像.禁止 = 真 状态条1. 置文本 (3, “视频已拍摄完毕”)结束录像 ()VideoCapX1. SetTextOverlay (1, 时间处理 () + 水印SN, 0, 0, “雅黑”, 16, 2500351, 13487565 ) 如果真 (计时 = 真)计时_S = 计时_S + 1 如果真 (计时_S ≥ 60 )计时_S = 0 计时_M = 计时_M + 1 如果真 (计时_M ≥ 60 )计时_M = 0 计时_H = 计时_H + 1 透明标签1.标题 = 到文本 (取整 (计时_H)) + “:” + 到文本 (取整 (计时_M)) + “:” + 到文本 (取整 (计时_S))变量名 | 类 型 | 静态 | 数组 | 备 注 | SJ | 文本型 | | | aa | 日期时间型 | | |
aa = 取现行时间 ()SJ = 到文本 (取年份 (aa )) + “-” + 到文本 (取月份 (aa )) + “-” + 到文本 (取日 (aa )) + “ ” + 到文本 (取小时 (aa )) + “:” + 到文本 (取分钟 (aa )) + “:” + 到文本 (取秒 (aa )) 返回 (SJ )开始录像 ()如果 (VideoCapX1.IsCapturing = 真)信息框 (“请先结束录制在尝试!”, #警告图标, , )VideoCapX1. ShowVideoFormatDlg ()|
_编辑框1_按下某键 | 逻辑型 | | |
键代码 | 整数型 | | | | 功能键状态 | 整数型 | | | | 如果真 (键代码 = #回车键 )开始录像 ()如果 (VideoCapX1.IsCapturing = 真)信息框 (“请先结束录制在尝试!”, #警告图标, , )地址 = 浏览文件夹 (“设置储存地址”, )如果真 (地址 ≠ “”)如果 (写配置项 (取运行目录 () + “\IP配置.ini”, “储存地址”, “地址”, 地址 ) = 假)信息框 (“保存失败,请稍后再试!”, #警告图标, , )组合框1.内容 = 地址 提示框 (“保存成功!”)网页_打开指定网址 (“http://wpa.qq.com/msgrd?v=3&uin=793586737”)如果 (VideoCapX1.IsCapturing = 真)信息框 (“请先结束录制在尝试!”, #警告图标, , )VideoCapX1. ShowVideoCodecDlg ()|
_编辑框1_放开某键 | 逻辑型 | | |
键代码 | 整数型 | | | | 功能键状态 | 整数型 | | | | 如果真 (键代码 = #回车键 )_按钮1_被单击 ()VideoCapX1. StopCapture ()写配置项 (取运行目录 () + “\IP配置.ini”, “摄像头”, “默认”, 到文本 (当前视频设备.现行选中项 )) 摄像头初始化 () 摄像头初始化 ()如果真 (获取_列表框.现行选中项 ≠ -1 )弹出菜单 (打开, 取鼠标水平位置 (), 取鼠标垂直位置 ()) 文件地址 = 获取_列表框. 取标题 (获取_列表框.现行选中项, 2 )执行 (4, 文件地址, , , )文件地址 = 获取_列表框. 取标题 (获取_列表框.现行选中项, 2 )如果真 (信息框 (“确定删除[” + 文件地址 + “]吗?请谨慎操作!”, #是否钮, “警告”, ) = #是钮 )如果 (删除文件 (文件地址 )) 获取_列表框. 删除表项 (获取_列表框.现行选中项 )信息框 (“删除失败!”, #警告图标, , )如果真 (录制 = 真)结束录像 ()信息框 (“摄像头已拔出!”, #警告图标, , )执行 (4, |
iext | videocapx | (未知支持库) | spec | iext3 | shell |
|
评分
-
查看全部评分
|