天天看点

海康摄像头SDK开发之样例调试(JAVA)

背景

最近鉴于项目的原因开始着手开发物联网系统,提到物联网那摄像头对接是怎么也逃不掉的一个设备,而海康,大华,华为摄像头成了挥之不去的优选对象,本片文章主要记录海康摄像头对接样例的调试,通过这篇文章希望后续探索者可以做到拿来即用。

材料

1、PC一台

2、海康DS-2DE**系列PTZ球机(注:根据海康官方的说法,该样例适配与所有型号的提供二次开发的摄像头)

3、路由器,网线

操作

1、在海康官网(https://www.hikvision.com/cn/download_61.html)SDK下载目录下下载自己需要的版本

海康摄像头SDK开发之样例调试(JAVA)

2、由于我是采用JAVA进行对接开发,所以搭建eclipse 或类似IDE是必要环节(本环境采用了jdk1.8,至于细节配置就不在本篇文章中描述) 

海康摄像头SDK开发之样例调试(JAVA)

3、解压我们从海康官网下载的SDK包

海康摄像头SDK开发之样例调试(JAVA)

4、IDE导入样例中的JAVA样例(我导入的是ClientDemo-NetBeansPro) 

海康摄像头SDK开发之样例调试(JAVA)

继续

海康摄像头SDK开发之样例调试(JAVA)

继续

海康摄像头SDK开发之样例调试(JAVA)

4、大家导入项目后会发现目录结构和上面截图中的不一样,多了好多dll,不要急,这些dll是根据海康demo提示文件从下来目录CP来的。

海康摄像头SDK开发之样例调试(JAVA)

具体需要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返回的错误号判断原因。
           

5、修改 HCNetSDK 文件(位置如下截图)

海康摄像头SDK开发之样例调试(JAVA)

将上面文件中的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;   //设备可配以太网络
           

6、启动ClientDemo 文件即可(文件中含有main方法) 

7、启动成功后会弹出如下窗口

海康摄像头SDK开发之样例调试(JAVA)

8、输入用户名和密码及IP,端口后点击注册,因为只有注册成功了才可以预览(注意:摄像头要激活才可以操作,否则报注册失败,如果上面描述中的dll文件路径错了或者缺失了,和系统版本中的dll出现冲突了,这里注册都会只报注册失败,调试代码得到-1)

9、注册成功后就可以预览和操作摄像头了

海康摄像头SDK开发之样例调试(JAVA)

 结束

由于运气差还是技术差或者见识少的缘故吧,过程中遇到了很多坑,看着别的网友都能成功自己却不行,难受。故分享此过程和源码,便于后人一次性完成样例的调试环节

继续阅读