背景
最近鉴于项目的缘由开始着手开发物联网系统,提到物联网那摄像头对接是怎么也逃不掉的一个设备,而海康,大华,华为摄像头成了挥之不去的优选对象,本片文章主要记录海康摄像头对接样例的调试,经过这篇文章但愿后续探索者能够作到拿来即用。html
材料
一、PC一台网络
二、海康DS-2DE**系列PTZ球机(注:根据海康官方的说法,该样例适配与全部型号的提供二次开发的摄像头)eclipse
三、路由器,网线spa
操做
一、在海康官网(https://www.hikvision.com/cn/download_61.html)SDK下载目录下下载本身须要的版本3d
二、因为我是采用JAVA进行对接开发,因此搭建eclipse 或相似IDE是必要环节(本环境采用了jdk1.8,至于细节配置就不在本篇文章中描述) 调试
三、解压咱们从海康官网下载的SDK包code
四、IDE导入样例中的JAVA样例(我导入的是ClientDemo-NetBeansPro) htm
继续对象
继续blog
四、你们导入项目后会发现目录结构和上面截图中的不同,多了好多dll,不要急,这些dll是根据海康demo提示文件从下来目录CP来的。
具体须要CP 哪些dll,能够对照我上面工程的截图,也能够根据海康的提示txt文件进行
【注意事项】 ------------------------------------ 1. 更新设备网络SDK时,SDK开发包【库文件】里的HCNetSDK.dll、HCCore.dll、PlayCtrl.dll、SuperRender.dll、AudioRender.dll、HCNetSDKCom文件夹、ssleay32.dll、libeay32.dll、hlog.dll、hpr.dll、zlib1.dll、log4cxx.properties等文件均要加载到程序里面,【HCNetSDKCom文件夹】(包含里面的功能组件dll库文件)须要和HCNetSDK.dll、HCCore.dll一块儿加载,放在同一个目录下,且HCNetSDKCom文件夹名不能修改。 2. 若是自行开发软件不能正常实现相应功能,并且程序没有指定加载的dll库路径,请在程序运行的状况下尝试删除HCNetSDK.dll。若是能够删除,说明程序可能调用到系统盘Windows->System32目录下的dll文件,建议删除或者更新该目录下的相关dll文件;若是不能删除,dll文件右键选择属性确认SDK库版本。 3. 如按上述步骤操做后仍是不能实现相应功能,请根据NET_DVR_GetLastError返回的错误号判断缘由。
五、修改 HCNetSDK 文件(位置以下截图)
将上面文件中的HCnetSDK 类中加载dll库的地址修改下,我这里为了方便使用了绝对地址,主要末尾的“.dll”后缀不能丢,至少我验证的是不能丢
//SDK接口说明,HCNetSDK.dll public interface HCNetSDK extends StdCallLibrary { HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary("E:\\***\\hk\\ClientDemo-NetBeansPro\\HCNetSDK.dll", HCNetSDK.class); /***宏定义***/ //常量 public static final int MAX_NAMELEN = 16; //DVR本地登录名 public static final int MAX_RIGHT = 32; //设备支持的权限(1-12表示本地权限,13-32表示远程权限) public static final int NAME_LEN = 32; //用户名长度 public static final int PASSWD_LEN = 16; //密码长度 public static final int SERIALNO_LEN = 48; //序列号长度 public static final int MACADDR_LEN = 6; //mac地址长度 public static final int MAX_ETHERNET = 2; //设备可配以太网络
六、启动ClientDemo 文件便可(文件中含有main方法)
七、启动成功后会弹出以下窗口
八、输入用户名和密码及IP,端口后点击注册,由于只有注册成功了才能够预览(注意:摄像头要激活才能够操做,不然报注册失败,若是上面描述中的dll文件路径错了或者缺失了,和系统版本中的dll出现冲突了,这里注册都会只报注册失败,调试代码获得-1)
九、注册成功后就能够预览和操做摄像头了
结束
因为运气差仍是技术差或者见识少的缘故吧,过程当中遇到了不少坑,看着别的网友都能成功本身却不行,难受。故分享此过程和源码,便于后人一次性完成样例的调试环节