ホームページ >Java >&#&チュートリアル >Java Hikvision SDK の二次開発を使用して強力なビデオ監視システムを構築する

Java Hikvision SDK の二次開発を使用して強力なビデオ監視システムを構築する

WBOY
WBOYオリジナル
2023-09-06 12:37:451056ブラウズ

Java Hikvision SDK の二次開発を使用して強力なビデオ監視システムを構築する

Java Hikvision SDK を二次開発に使用して、強力なビデオ監視システムを構築する

要約:
この記事では、二次開発に Java Hikvision SDK を使用する方法を紹介します。 、強力なビデオ監視システムを構築します。 Hikvision SDK が提供する豊富なインターフェイスと機能を通じて、ビデオ録画、リアルタイム プレビュー、リモート コントロールなどの機能を簡単に実装し、カスタマイズされたビジネス ロジックを追加できます。この記事では、二次開発に Java Hikvision SDK を使用する方法を詳しく紹介し、読者の理解を深めるためにいくつかのサンプル コードを提供します。

パート 1: 環境の準備
開始する前に、次の準備を行う必要があります:

  1. Java JDK をダウンロードしてインストールします。
  2. Eclipse などの IDE をダウンロードしてインストールします。
  3. Hikvision SDK をダウンロードしてインストールします。

パート 2: プロジェクトの作成と構成

  1. Java プロジェクトを作成し、Hikvision SDK の jar パッケージをインポートします。
  2. デバイス IP、ポート番号、ユーザー名、パスワードなど、Hikvision SDK の関連パラメーターを構成します。
  3. SDK を初期化し、関連する操作を実行するメイン クラスを作成します。

パート 3: リアルタイム プレビュー機能
リアルタイム プレビューは、ビデオ監視システムの最も基本的な機能の 1 つです。以下は、リアルタイム プレビューに Hikvision SDK を使用する方法を示すサンプル コードです。

import com.sun.jna.NativeLong;
import com.sun.jna.Pointer;
import com.sun.jna.ptr.NativeLongByReference;
import com.sun.jna.ptr.PointerByReference;

import com.hikvision.netsdk.HCNetSDK;
import com.hikvision.netsdk.NET_DVR_DEVICEINFO_V30;
import com.hikvision.netsdk.NET_DVR_PREVIEWINFO;

public class RealTimePreview {

    private static HCNetSDK hikSDK = HCNetSDK.INSTANCE;

    public static void main(String[] args) {
        // 初始化SDK
        hikSDK.NET_DVR_Init();

        // 登录设备
        NativeLong lUserID;
        NET_DVR_DEVICEINFO_V30 deviceInfo = new NET_DVR_DEVICEINFO_V30();
        lUserID = hikSDK.NET_DVR_Login_V30("192.168.1.100", (short) 8000, "admin", "password", deviceInfo);
        if (lUserID.intValue() == -1) {
            System.out.println("登录失败,错误码:" + hikSDK.NET_DVR_GetLastError());
            return;
        }

        // 设置预览参数
        NativeLong lRealPlayHandle;
        NET_DVR_PREVIEWINFO previewInfo = new NET_DVR_PREVIEWINFO();
        previewInfo.lChannel = 1;
        previewInfo.dwStreamType = 0;
        previewInfo.dwLinkMode = 0;
        previewInfo.hPlayWnd = null;

        // 开始预览
        lRealPlayHandle = hikSDK.NET_DVR_RealPlay_V40(lUserID, previewInfo, null);
        if (lRealPlayHandle.intValue() == -1) {
            System.out.println("预览失败,错误码:" + hikSDK.NET_DVR_GetLastError());
            return;
        }

        // 等待预览停止
        System.out.println("按任意键停止预览...");
        try {
            System.in.read();
        } catch (Exception e) {
            e.printStackTrace();
        }

        // 停止预览
        if (!hikSDK.NET_DVR_StopRealPlay(lRealPlayHandle)) {
            System.out.println("停止预览失败,错误码:" + hikSDK.NET_DVR_GetLastError());
            return;
        }

        // 退出登录
        hikSDK.NET_DVR_Logout(lUserID);
        hikSDK.NET_DVR_Cleanup();
        System.out.println("退出成功");
    }
}

パート 4: ビデオ録画機能
リアルタイム プレビューに加えて、ビデオ監視システムには次のことも必要です。ビデオ録画機能を提供します。以下は、ビデオ録画に Hikvision SDK を使用する方法を示すサンプル コードです:

import com.sun.jna.NativeLong;
import com.sun.jna.ptr.NativeLongByReference;

import com.hikvision.netsdk.HCNetSDK;
import com.hikvision.netsdk.NET_DVR_DEVICEINFO_V30;
import com.hikvision.netsdk.NET_DVR_PREVIEWINFO;
import com.hikvision.netsdk.NET_DVR_TIME;

public class VideoRecording {

    private static HCNetSDK hikSDK = HCNetSDK.INSTANCE;

    public static void main(String[] args) {
        // 初始化SDK
        hikSDK.NET_DVR_Init();

        // 登录设备
        NativeLong lUserID;
        NET_DVR_DEVICEINFO_V30 deviceInfo = new NET_DVR_DEVICEINFO_V30();
        lUserID = hikSDK.NET_DVR_Login_V30("192.168.1.100", (short) 8000, "admin", "password", deviceInfo);
        if (lUserID.intValue() == -1) {
            System.out.println("登录失败,错误码:" + hikSDK.NET_DVR_GetLastError());
            return;
        }

        // 设置预览参数
        NativeLong lRealPlayHandle;
        NET_DVR_PREVIEWINFO previewInfo = new NET_DVR_PREVIEWINFO();
        previewInfo.lChannel = 1;
        previewInfo.dwStreamType = 0;
        previewInfo.dwLinkMode = 0;
        previewInfo.hPlayWnd = null;

        // 开始预览
        lRealPlayHandle = hikSDK.NET_DVR_RealPlay_V40(lUserID, previewInfo, null);
        if (lRealPlayHandle.intValue() == -1) {
            System.out.println("预览失败,错误码:" + hikSDK.NET_DVR_GetLastError());
            return;
        }

        // 开始录像
        NativeLongByReference lRecordHandle = new NativeLongByReference();
        NET_DVR_TIME startTime = new NET_DVR_TIME();
        startTime.dwYear = 2022;
        startTime.dwMonth = 12;
        startTime.dwDay = 1;
        startTime.dwHour = 0;
        startTime.dwMinute = 0;
        startTime.dwSecond = 0;
        if (!hikSDK.NET_DVR_SetFileTime(0, startTime)) {
            System.out.println("设置录像时间失败,错误码:" + hikSDK.NET_DVR_GetLastError());
            return;
        }
        lRecordHandle.setValue(hikSDK.NET_DVR_RealPlay_V40(lUserID, previewInfo, null));
        if (lRecordHandle.intValue() == -1) {
            System.out.println("录像失败,错误码:" + hikSDK.NET_DVR_GetLastError());
            return;
        }

        // 等待录像停止
        System.out.println("按任意键停止录像...");
        try {
            System.in.read();
        } catch (Exception e) {
            e.printStackTrace();
        }

        // 停止录像
        if (!hikSDK.NET_DVR_StopRealPlay(lRecordHandle.getValue())) {
            System.out.println("停止录像失败,错误码:" + hikSDK.NET_DVR_GetLastError());
            return;
        }

        // 退出登录
        hikSDK.NET_DVR_Logout(lUserID);
        hikSDK.NET_DVR_Cleanup();
        System.out.println("退出成功");
    }
}

概要:
この記事では、強力なビデオ監視システムを構築するための二次開発に Java Hikvision SDK を使用する方法を紹介します。 Hikvision SDK が提供するインターフェイスと機能を通じて、リアルタイム プレビューやビデオ録画などの機能を実装し、カスタマイズされたビジネス ロジックを追加できます。この記事が読者の Java Hikvision SDK の学習と使用に役立つことを願っています。

以上がJava Hikvision SDK の二次開発を使用して強力なビデオ監視システムを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。