.Net 平台应用与技巧
MRZ图表分组数据源过滤设计示例
平台应用类
OrBit平台Job配置
【序列号规则】插件使用说明
工单自定义流程节点应用说明
平台 【SVN 版本管理】工具使用说明
平台SPC应用介绍
平台WebAPI文件上传、下载(OrBitWebAPI2)
平台【元对象授权】功能使用说明
平台【分级授权】功能使用说明
平台【消息对象】使用说明
平台【表单消息升级】应用说明
平台可配置【 Excel 文件导出】功能使用说明
按产品定义采集功能使用说明
用户自定义编码及系统单据状态、单据类型的颜色配置
系统中如何增加用户密码过期更换提醒
通用在线打印功能使用说明
平台技巧类
MS-SQL 添加并引用 DLL 程序集
OrBit “自定义对话框”使用说明
Matrix标签打印(OrBitMESHelp/OrBitMetaHelp)
MES事务对象Scripter--扩展方法
MES事务帮助类OrBitMESHelp
WebView2管理类--用于展示看板
元对象Scripter--扩展方法
元对象帮助类OrBitMetaHelp
外挂Exc程序(发布为平台插件)---调用自定义对话框
自定义对话框--Xml/Json数据解析神器
OrBit-KanBan File 类型应用说明
OrBit-X 如何支持 Https 协议
OrBit-X 平台 Bartender 标签模板制作说明
OrBit-X 平台元对象多文件上传、预览
OrBit-X 平台内置 WebAPI 使用说明
OrBit-X 应用打包-扩展工具-快捷迁移
OrBit平台“调用摄像头拍照、录制视频,并上传FTP”窗体控件的应用
元对象可配置Excel导入功能应用说明
元对象嵌入看板
基于 Json 数据格式的 Mrt 模板设计说明
如何利用 Bartender 标签模板实现一拖几打印
平台 Excel 对象导入功能应用说明
平台 MES 事务对象实现网格多选效果
平台 WebAPI 应用说明
平台中 Mrz 模板实现钻取功能
平台发布接口(OrBitWebAPI&OrBitWebAPI2)
平台通过 CLR 实现企业微信消息及文件自动推送
标签/报表实现只预览不打印
通过平台 Web 服务实现远端 Wifi 打印说明
静态事务“平铺按钮”控件的应用
静态事务”调用摄像头扫码识别条码(条形码/二维码)“功能的应用与实现
钉钉机器人接口实现及其他API扩展
-
+
首页
OrBit平台“调用摄像头拍照、录制视频,并上传FTP”窗体控件的应用
# 一、概述 如大家所知,OrBit平台已提供通过FTP上传本地图片、视频及其他格式文件的方法,以此关联到实际业务,作为一种重要的存档依据。但是,上传本地图片、视频文件,就意味着需要先通过采集终端获得文件,再拷贝到PC进行上传。那么,可不可以在实际业务功能中,直接调用PC的摄像头或USB外设摄像头拍照、录制视频,再上传FTP,与业务数据建立关联呢?答案是肯定的。下面,就为大家阐述具体的应用与实现。 PS:由于底层引用的第三方dll是32位的,导致封装的控件也**只能在32位的OrBit Broswer中运行**。 [拍摄窗体控件] ![](http://121.37.203.18:8006/media//202111/CameraForm_1637810383.jpg) dll文件: [【附件】R13.rar](/media/attachment/2021/11/R13.rar) [【附件】R15.rar](/media/attachment/2021/11/R15.rar) 【R16】:支持元对象 [【附件】OrBitCamera.rar](/media/attachment/2024/06/OrBitCamera.rar) # 二、应用实例 1. 维保报修(故障现场照片/视频) EAM的维保过程中,如果发现异常状况,是可以进行报修的。报修时,要求说明故障现象,此时如果能提供故障现场的图片/视频,将是更直观且有力的凭证。 [报修故障] ![](http://121.37.203.18:8006/media//202111/ToRepair_1637810409.png) 维修单: [故障图片] ![](http://121.37.203.18:8006/media//202111/ToRepairFault_1637810414.jpg) 2. 异常呼叫(故障现场照片/视频) 待添加应用… 3. 维修方法(维修过程视频记录) 待添加应用… 4. 其他 # 三、实现步骤 **1. 服务器插件(PluginService)目录下,添加相关的dll文件: DShowNET.dll/ ICameraDll.dll/ PWICamera.dll。** **2. 平台系统参数中配置Always DowLoad参数,则每次登录Broswer时,会自动从PluginService目录下载文件到本地的Broswer安装目录。** [dll下载参数] ![](http://121.37.203.18:8006/media//202111/dllDownPara_1637810389.png) **3. 静态事务对象中添加引用(PWICamera.dll)** [dll引用] ![](http://121.37.203.18:8006/media//202111/dllUsing_1637810393.jpg) **4. 对象脚本实例化窗体控件,及相关业务脚本编写** 1> 窗体控件声明及事件注册 [对象脚本引用1] ![](http://121.37.203.18:8006/media//202111/Script1_1637810396.jpg) 脚本代码: ```csharp // 拍照、录制视频窗体控件 public string msg = null; public PWICameraDialog cameraDialog; /// <summary> /// 从拍摄插件获取上传的文件Id集合 /// </summary> public List<string> uploadFileIds = new List<string>(); /// <summary> /// 操作完成后,关闭对话框触发的事件(从该事件中获取拍摄上传信息) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void CameraDialog_CameraUploadComplete(object sender, CameraUploadCompleteEventArgs e) { if (e.UploadFileIds != null && e.UploadFileIds.Count > 0) { this.uploadFileIds.AddRange(e.UploadFileIds); Scripter.SetParameterValue( "UploadFileIds",string.Join(";",e.UploadFileIds) ); Scripter.RunMethod("ToRepairFielSave"); } } ``` 2> 窗体控件实例化并弹出 [对象脚本引用2] ![](http://121.37.203.18:8006/media//202111/Script2_1637810399.jpg) 脚本代码: ```csharp // 故障图片/视频 if( ButtonName.ToUpper() == "FaultPicVdo".ToUpper() ) { // 维修单Id maintainId = Scripter.GetParameterValue("MaintainId"); if( string.IsNullOrEmpty(maintainId) ) { MessageBox.Show("尚未报修!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return false; } // 弹出拍照、录制视频窗体 cameraDialog = new PWICameraDialog(Scripter); cameraDialog.CameraUploadComplete += new CameraUploadCompleteEventHandler(CameraDialog_CameraUploadComplete); cameraDialog.ShowDialog(); } ``` 3>窗体控件释放 [对象脚本引用3] ![](http://121.37.203.18:8006/media//202111/Script3_1637810404.jpg) 脚本代码: ```csharp /// <summary> /// 脚本在退出前的询问方法 /// </summary> /// <returns>True则退出,False则取消退出</returns> public bool ScriptClosing() { //to do.. if (cameraDialog != null) cameraDialog.Dispose(); return true; } /// <summary> /// MES事务对象在关闭时卸载此脚本对象的方法 /// </summary> public void ScriptUnLoad() { //to do.. if (cameraDialog != null) cameraDialog.Dispose(); } ``` # 四、控件使用说明 1. 选择视频源(**可支持USB外设**); 2. 连接摄像头; 3. 拍照或录制视频(录制视频时,中途可暂停); 4. **双击**图片/视频,可进行**预览**,视效果决定要不要重拍; 5. FTP上传(包含本地图片、视频文件上传); 6. 关闭窗体,返回所上传文件的FtpId(若未上传,则无FtpId返回内容); 7. FtpId与实际业务数据关联。 **PS**:若拍摄的视频文件未上传而关闭窗体,则再次打开窗体时,**原视频文件会清除**,而**照片会保留**。 # 五、版本迭代说明 该版本录制的视频,没有采集音频数据,所以播放时是没有声音的。若有必要,后续的迭代版本可以增加音频采集。 [R16.24.06.28]版本:支持元对象。 如图: ![](/media//202406/2024-06-28_175440.png) 调用示例: ![](/media//202406/2024-06-28_175458.png) [R16.24.07.13]版本: 支持元对象扫码 ![](/media//202407/2024-07-13_113211.png) 支持相关参数设置(OpenCV/DShowNet/Windows相机、Fps、帧率等) ![](/media//202407/2024-07-13_144234.png) dll文件及调用示例: [【附件】OrBitCamera_R16.24.07.13.rar](/media/attachment/2024/07/OrBitCamera_R16.24.07.13_p5OJ80R.rar)
拍照、录制视频
调用摄像头
HG0064
2024年7月13日 14:53
分享
上一篇
下一篇
目录
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
下载Markdown文件