内容简介:最近接触了海康威视网络摄像头的二次开发,需要下载官方提供的选用的二次开发DEMO路径是解压后的: Demo示例/c#开发示例/实时预览示例代码二按照说明把相应的dll和文件夹放到工程对应的bin目录,并成功运行demo之后,预览图像中如果有移动物体,就会显示绿色的方块格状区域, 问询海康威视的工程师后,得知是默认开启了移动侦测框,取消这个设置有两种方式,以下是原文:
最近接触了海康威视网络摄像头的二次开发,需要下载官方提供的 SDK
选用的二次开发DEMO路径是解压后的: Demo示例/c#开发示例/实时预览示例代码二
按照说明把相应的dll和文件夹放到工程对应的bin目录,并成功运行demo之后,预览图像中如果有移动物体,就会显示绿色的方块格状区域, 问询海康威视的工程师后,得知是默认开启了移动侦测框,取消这个设置有两种方式,以下是原文:
这个是移动侦测的规则框,是播放库叠加的内容
您可以直接关掉移动侦测的功能,调用接口不关闭移动侦测功能只关闭绿色格子显示有两种方式,一种是客户端取消显示,一种是设备端取消叠加:
- 调用NET_DVR_RealPlay_V40传窗口句柄直接预览默认显示该叠加信息,此时调用NET_DVR_GetRealPlayerIndex获取播放库句柄,然后调用播放库接口PlayM4_RenderPrivateData(该接口调用请参考播放库SDK编程指南)可以控制显示或者取消显示。
- 通过NET_DVR_GetDVRConfig(命令:NET_DVR_GET_PICCFG_V40)、NET_DVR_SetDVRConfig(命令:NET_DVR_SET_PICCFG_V40)获取和设置,其中的移动侦测参数NET_DVR_PICCFG_V40—》NET_DVR_MOTION_V40里面的byEnableDisplay设置为0即可,也可以WEB或者或者客户端软件登录设备进配置界面直接手动设置取值动态显示
对于使用的C#demo来说,对应的代码如下:
//声明一个NET_DVR_PICCFG_V40类型的类对象 public CHCNetSDK.NET_DVR_PICCFG_V40 m_struPicCfgV40; //以下是函数体内使用的代码 uint dwSize = (uint)Marshal.SizeOf(m_struPicCfgV40); //一个指针和对应的结构体,SET和GET Config的时候都是使用指针,但是操作赋值的时候使用的是结构体 IntPtr ptrPicCfgV40 = Marshal.AllocHGlobal((Int32)dwSize); Marshal.StructureToPtr(m_struPicCfgV40, ptrPicCfgV40, false); uint dwReturn = 0; int iGroupNo = iChannelNum[(int)iSelIndex]; //通道号 Channel number if (!CHCNetSDK.NET_DVR_GetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_PICCFG_V40, iGroupNo, ptrPicCfgV40, dwSize, ref dwReturn)) { iLastErr = CHCNetSDK.NET_DVR_GetLastError(); str = "NET_DVR_GET_PICCFG_V40 failed, error code= " + iLastErr; //获取IP资源配置信息失败,输出错误号 Failed to get configuration of IP channels and output the error code //MessageBox.Show(str); } else { m_struPicCfgV40 = (CHCNetSDK.NET_DVR_PICCFG_V40)Marshal.PtrToStructure(ptrPicCfgV40, typeof(CHCNetSDK.NET_DVR_PICCFG_V40)); //重点是设置这里的byEnableDisplay为0,取消移动侦测框 m_struPicCfgV40.struMotion.byEnableDisplay = 0; //不要忘记结构体转换成指针 Marshal.StructureToPtr(m_struPicCfgV40, ptrPicCfgV40, true); if (!CHCNetSDK.NET_DVR_SetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_SET_PICCFG_V40, iGroupNo, ptrPicCfgV40, dwSize)) { uint iLastErr = CHCNetSDK.NET_DVR_GetLastError(); string str = "NET_DVR_SET_PICCFG_V40 failed, error code= " + iLastErr; //MessageBox.Show(str); } else { //MessageBox.Show("NET_DVR_SET_PICCFG_V40配置成功!" + iGroupNo); CHCNetSDK.NET_DVR_GetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_PICCFG_V40, iGroupNo, ptrPicCfgV40, dwSize, ref dwReturn); m_struPicCfgV40 = (CHCNetSDK.NET_DVR_PICCFG_V40)Marshal.PtrToStructure(ptrPicCfgV40, typeof(CHCNetSDK.NET_DVR_PICCFG_V40)); //MessageBox.Show("NET_DVR_GET_PICCFG_V40!" + m_struPicCfgV40.struMotion.byEnableDisplay); } }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 读vue的变化侦测
- Vue侦测相关api
- Vue 源码剖析 —— 对象变化侦测
- Vue 源码剖析 —— 变化侦测相关 API 实现原理
- Sophos Intercept X EDR:智能、简单的端点侦测与响应
- 文件预览 kkFileView v1.1 新增多媒体预览支持等
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Spring技术内幕
计文柯 / 机械工业出版社 / 2010-1-1 / 55.00元
内容简介: 本书是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自执笔!Java开发者社区和Spring开发者社区一致强烈推荐。 国内第一本基于Spring3.0的著作,从源代码的角度对Spring的内核和各个主要功能模块的架构、设计和实现原理进行了深入剖析。你不仅能从木书中参透Spring框架的优秀架构和设计思想,而且还能从Spring优雅的实现源码中一窥......一起来看看 《Spring技术内幕》 这本书的介绍吧!