基于最新版设备网络SDK集成海康摄像头之Java Demo调试运行教程

Java Demo运行截图:

由于涉及到空间隐私,部分位置会打码。
基于最新版设备网络SDK集成海康摄像头之Java Demo调试运行教程_第1张图片

设备网络SDK

设备网络SDK是基于硬件的SDK,是基于设备私有网络通信协议开发的,为后端设备(嵌入式网络硬盘录像机、视频服务器)、前端设备(网络摄像机、网络球机、IP模块)等产品服务的配套模块,用于远程访问和控制设备软件的二次开发。

设备网络SDK_Win64下载地址,这是官网地址哦~
顺便贴上 Hikvision AI Cloud 开放平台 如果开发过程中遇到问题,可以到这里查找解决办法。

基于最新版设备网络SDK集成海康摄像头之Java Demo调试运行教程_第2张图片
SDK下载完解压出来:

基于最新版设备网络SDK集成海康摄像头之Java Demo调试运行教程_第3张图片

导入工程

Demo示例里面的Java 开发示例导入到Eclipse里,因为这是个Eclipse项目。

如果习惯用IDEA开发项目的同志,不知道如何导入,可以按照下面的步骤导入:

  1. 进入到Package Explorer视图,右键空白的地方,点击Import按钮:

基于最新版设备网络SDK集成海康摄像头之Java Demo调试运行教程_第4张图片

2.找到General文件夹,选择其下面的Existing Projects into Workspace

基于最新版设备网络SDK集成海康摄像头之Java Demo调试运行教程_第5张图片

  1. 选择刚才解压路径里面的Java Demo根路径:

基于最新版设备网络SDK集成海康摄像头之Java Demo调试运行教程_第6张图片

  1. 至此,项目导入成功:

基于最新版设备网络SDK集成海康摄像头之Java Demo调试运行教程_第7张图片

ClientDemo调试

这个Demo的Main类是:ClientDemo.java,但是如果你直接运行它的话,会报错:

基于最新版设备网络SDK集成海康摄像头之Java Demo调试运行教程_第8张图片
报错代码:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'HCNetSDK': ÕҲ»µ½ָ¶¨
	at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:145)
	at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:188)
	at com.sun.jna.Library$Handler.<init>(Library.java:123)
	at com.sun.jna.Native.loadLibrary(Native.java:255)
	at com.sun.jna.Native.loadLibrary(Native.java:241)
	at ClientDemo.HCNetSDK.<clinit>(HCNetSDK.java:36)
	at ClientDemo.ClientDemo.<clinit>(ClientDemo.java:66)

报错提示,无法加载HCNetSDK这个库,导致HCNetSDK初始化失败。

如何解决这个错误呢?点开HCNetSDK.java ,在36行代码左右:

//SDK接口说明,HCNetSDK.dll
public interface HCNetSDK extends StdCallLibrary {
     

    HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary("HCNetSDK",
            HCNetSDK.class);
            
            .....
           
}

上面代码并没有指定HCNetSDK.dll文件的路径,而且Native.loadLibrary()只能填绝对路径相对路径不起作用,先把dll文件放进工程里面,需要放多少dll文件呢?

点开工程根目录下的SDK库文件拷贝到该目录下.txt文件,看注意事项中的第二点,如果看到的是乱码,请将编码格式设置成GBK:

2. 请修改程序代码,其中HCNetSDK.java文件自己指定loadlibrary加载库的路径,【库文件】里的HCNetSDK.dll、HCCore.dll、PlayCtrl.dll、SuperRender.dll、HCNetSDKCom文件夹、ssleay32.dll、libeay32.dll、hlog.dll、hpr.dll、zlib1.dll、log4cxx.properties等文件均拷贝到该路径下。

注意啦!还需要一个AudioRender.dll文件,没有这个文件是无法进行预览的,就是看不到实时监控的画面,窗口空白无反应。
如果使用hCNetSDK.NET_DVR_GetLastError()获取错误码,错误码=64,是因为播放库(PlayCtrl.dll、SuperRender.dll、AudioRender.dll)没有拷贝加载到程序里面
在这里插入图片描述

将上面提到的文件都放到MyDemo1工程里面,怎么放呢?

右键MyDemo1工程,选择New一个Source Folder,命名为dllLibrary:

基于最新版设备网络SDK集成海康摄像头之Java Demo调试运行教程_第9张图片
将SDK开发包【库文件】里的HCNetSDK.dll、HCCore.dll、PlayCtrl.dll、SuperRender.dll、AudioRender.dll、HCNetSDKCom文件夹、ssleay32.dll、libeay32.dll、hlog.dll、hpr.dll、zlib1.dll、log4cxx.properties等文件均要拷贝到该文件夹里:

基于最新版设备网络SDK集成海康摄像头之Java Demo调试运行教程_第10张图片

最后一步,指定HCNetSDK库的路径,在HCNetSDK.java文件上修改:

但是这里有两处地方需要修改:

  • HCNetSDK INSTANCE这里,改成下面代码:
HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary(System.getProperty("user.dir") 
    		+ "\\dllLibrary\\HCNetSDK.dll", HCNetSDK.class);
  • PlayCtrl INSTANCE这里,改成下面代码:
PlayCtrl INSTANCE = (PlayCtrl) Native.loadLibrary(System.getProperty("user.dir")
    		+ "\\dllLibrary\\PlayCtrl.dll", PlayCtrl.class);

然后再运行ClientDemo.java文件,就不会再报错了,会出现下面这个窗口:

基于最新版设备网络SDK集成海康摄像头之Java Demo调试运行教程_第11张图片至此,HCNetSDK初始化成功!如果网络已经接入了海康网络摄像头DVR,可以填写这个摄像头的IP地址、用户名&密码、端口进行注册,注册成功后,可以选择通道进行预览。记得步骤是:先配置完摄像头数据->注册->选择通道->预览。

非常感谢你能看到最后,如果能够帮助到你是我的荣幸!

你可能感兴趣的:(Java,java,sdk,海康摄像头)