最详细的JavaWeb服务器端通过海康SDK实现对摄像机的控制。

需求介绍:

        近期需求,需要通过JavaWeb开发,实现在web页面上对海康摄像机进行调焦、控制方向、调光圈大小等操作。通过研究海康官网给的demo,进行JavaWeb二次开发。同时也欢迎各位小伙伴留言 ,共同探讨。

一、准备工作

1.1 下载官方SDK

首先去海康官网下载SDK及其Demo,传送门:https://www.hikvision.com/cn/download_more_570.html

1.2 引入文档中提供的两个jar包至maven仓库并在项目中引入

下载SDK后可以发现有这两个jar包

需要通过maven命令将这两个jar引入到maven本机仓库(可参考https://blog.csdn.net/qq_42401622/article/details/107199799)。

然后就可以在工程的pom.xml中引用了。

        <!--海康sdk-->
        <dependency>
            <groupId>com.haikang</groupId>
            <artifactId>jna</artifactId>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/jna-1.0.0.jar</systemPath>
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.haikang</groupId>
            <artifactId>examples</artifactId>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/examples-1.0.0.jar</systemPath>
            <version>1.0.0</version>
        </dependency>

1.3  复制官方文档中所需要的的文件至本工程下。

i 复制HCNetSDK.java到本工程中。

    在工程中选择合适的文件夹,将官方文档中的HCNetSDK.java复制进去。

ii 复制动态库到本工程中,动态库如下图。

    在工程中选择合适的文件夹,将官方文档中的动态库复制进去。

 

二、加载动态库

进入准备好的HCNetSDK.java文件中,将动态库的加载路径进行设置,如下图。

三、API调试

使用main方法进行sdk接口调试,可以进行摄像机的左转和停止。致此,若想开发JavaWeb只需要在此基础上引申即可。

package org.example;

import com.sun.jna.NativeLong;

import java.io.IOException;
public class App
{
    public static void main( String[] args ) throws IOException, InterruptedException {

        NativeLong lUserID;//用户句柄
        NativeLong lPreviewHandle = new NativeLong(-1);//预览句柄

        HCNetSDK.NET_DVR_CLIENTINFO m_strClientInfo;//用户参数

        HCNetSDK hCNetSDK = HCNetSDK.INSTANCE;
        System.out.println("加载完成");

        boolean bool = hCNetSDK.NET_DVR_Init();
        System.out.println("初始化结果:" + bool);

        HCNetSDK.NET_DVR_DEVICEINFO_V30 m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V30();

        lUserID = hCNetSDK.NET_DVR_Login_V30("192.168.1.1",
                (short) 8000, "admin", "123456", m_strDeviceInfo);
        System.out.println("用户登录句柄:" + lUserID);

        m_strClientInfo = new HCNetSDK.NET_DVR_CLIENTINFO();
        m_strClientInfo.lChannel = new NativeLong(1);
        lPreviewHandle = hCNetSDK.NET_DVR_RealPlay_V30(lUserID,
                    m_strClientInfo, null, null, true);
        System.out.println("预览句柄:" + lPreviewHandle);

        //云台左转
        boolean isOK = hCNetSDK.NET_DVR_PTZControl(lPreviewHandle,hCNetSDK.PAN_LEFT,0);
        System.out.println("左转操作结果:" + isOK);

        Thread.sleep(1000);
        //停止云台左转
        isOK = hCNetSDK.NET_DVR_PTZControl(lPreviewHandle,hCNetSDK.PAN_LEFT,1);
        System.out.println("停止左转结果:" + isOK);

        int errorCode = hCNetSDK.NET_DVR_GetLastError();
        System.out.println("最后一次错误码:" + errorCode);

    }
}

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值