java海康摄像头SDK集成

1.从官方下载SDK包 按照自己的环境下载
2.按照readme 将相关dll文件和HCNetSDK.java文件放入自己的项目
java海康摄像头SDK集成_第1张图片我这是把全部的dll文件都搬过来了 放到了自己项目根目录下面

3.java文件肯定会报红 修改文件路径
java海康摄像头SDK集成_第2张图片
4.关于包的引用 ,官方sdk的压缩包也有,建议用官方的 这样不会出错
java海康摄像头SDK集成_第3张图片
添加对应依赖

 
            com.sun.jna.examples
            test
            1.0
            system
            ${basedir}/src/main/resources/examples.jar
        
        
            com.sun.jna
            test
            1.0
            system
            ${basedir}/src/main/resources/jna.jar
        

5.自测代码 这里以获取PTZ数据为例

 public static void main(String[] args) {
	 HCNetSDK hCNetSDK = HCNetSDK.INSTANCE;
        //加载动态库

        HCNetSDK.NET_DVR_CLIENTINFO m_strClientInfo = null;
        String m_sDeviceIP = "192.168.9.**";//已登录设备的IP地址
        //String m_sDeviceIP = "192.168.9.**";/室内球机
        int iPort = 8000;
        String username = "**";
        String password = "****";
        NativeLong lUserID  = new  NativeLong(-1);;//用户句柄


        boolean initSuc = hCNetSDK.NET_DVR_Init();//设备初始化
        System.out.println("initSuc:"+initSuc);

        lUserID = hCNetSDK.NET_DVR_Login_V30(m_sDeviceIP, (short) iPort,username,password, null);//登陆
        System.out.println("lUserID,"+lUserID);

        System.out.println("errorInfo,"+hCNetSDK.NET_DVR_GetLastError());
        //获取PTZ相关信息
        HCNetSDK.NET_DVR_PTZPOS m_ptzPosCurrent = new  HCNetSDK.NET_DVR_PTZPOS();

        IntByReference ibrBytesReturned = new IntByReference(0);

        Pointer pioint  = m_ptzPosCurrent.getPointer();

        hCNetSDK.NET_DVR_GetDVRConfig(lUserID, HCNetSDK.NET_DVR_GET_PTZPOS,new NativeLong(0),pioint,m_ptzPosCurrent.size(),ibrBytesReturned);

        m_ptzPosCurrent.read();

        System.out.println("PTZ垂直参数为: "+m_ptzPosCurrent.wTiltPos);
        System.out.println("PTZ水平参数为: "+m_ptzPosCurrent.wPanPos);
        System.out.println("PTZ变倍参数为: "+m_ptzPosCurrent.wZoomPos);
}

执行结果:
PTZ垂直参数为: 354
PTZ水平参数为: 1589
PTZ变倍参数为: 16
如果执行结果都是000 那么加上 m_ptzPosCurrent.read(); 这样就可以了

6.遇到问题
Structure.getFieldOrder() on class com.ocloud.hkws.HCNetSDK$NET_DVR_PTZPOS does not provide enough names****
遇到这样的报错
解决方法 1.查看 结构体中的字段包权限修饰是否为 public
2.在HCNetSDK.java中添加
java海康摄像头SDK集成_第4张图片

后续如果还要集成摄像头相关功能 在进行整理

你可能感兴趣的:(java海康摄像头SDK集成)