JAVA调用海康威视SDK

您所在的位置:网站首页 nativeloadlibrary JAVA调用海康威视SDK

JAVA调用海康威视SDK

2023-08-23 16:16| 来源: 网络整理| 查看: 265

一,开发前准备

1、去海康威视官网下载sdk包,附官网:https://www.hikvision.com/cn/index.html?jmode=j1

在这里插入图片描述

2、选择自己对应版本下载开发包

注意:官方SDK区分32位和64位,如果用64位的SDK需要使用JDK64位的,不能使用32位JDK。32位的SDK同理,只能使用32位JDK的。 在这里插入图片描述

3、下载完成后,开发包结构

在这里插入图片描述

二,实践

使用工具 idea+jdk 1.8

1、运行Demo示例

idea导入示例项目,并按说明导入dll 在这里插入图片描述项目结构 在这里插入图片描述如果项目报错,将项目中的 jna.jar 包添加到项目的Libraries中。

在这里插入图片描述

项目不报错后,可以打开 ClientDemo.java 中的main方法运行一下。如果能成功运行,祝贺你,或许你已经可以调通设备了。如果不能运行请往下继续阅读。 在这里插入图片描述直接运行后后报错 提示无法加载库 在这里插入图片描述 这时不要惊慌,打开 HCNetSDK.java 文件 将 HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary("HCNetSDK", HCNetSDK.class);

改为

HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary("项目的绝对路径/HCNetSDK", HCNetSDK.class);

示例: 在这里插入图片描述 然后继续运行ClientDemo.java 中的main方法 可能会继续出现刚才一样错误,提示无法加载库 在这里插入图片描述 这时同样打开 HCNetSDK.java 文件 将

PlayCtrl INSTANCE = (PlayCtrl) Native.loadLibrary("PlayCtrl", PlayCtrl.class);

改为

PlayCtrl INSTANCE = (PlayCtrl) Native.loadLibrary("项目的绝对路径/PlayCtrl", PlayCtrl.class);

注意此处的PlayCtrl后面是否需要加dll后缀,我看下其它博客标明需要加dll后缀,不然会报错,我这里没有加dll后缀,运行也没有报错 示例 在这里插入图片描述

出现上面两种提示无法加载库的情况也可使用此方法 public class ClientDemoPATH { public static String DLL_PATH; static { String path = (ClientDemo.class.getResource("/").getPath()).replaceAll("%20", " ").substring(1).replace("/", "\\"); try { DLL_PATH = java.net.URLDecoder.decode(path, "utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } } HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary(ClientDemoPATH.DLL_PATH+"HCNetSDK",HCNetSDK.class); PlayCtrl INSTANCE = (PlayCtrl) Native.loadLibrary(ClientDemoPATH.DLL_PATH+"PlayCtrl",PlayCtrl.class);

注意使用此方法需要将dll放在bin文件夹下

再次打开 ClientDemo.java 中的main方法运行一下 在这里插入图片描述


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3