Rumah  >  Artikel  >  Java  >  Gunakan pembangunan menengah Java Hikvision SDK untuk membina sistem pengawasan video yang berkuasa

Gunakan pembangunan menengah Java Hikvision SDK untuk membina sistem pengawasan video yang berkuasa

WBOY
WBOYasal
2023-09-06 12:37:45984semak imbas

Gunakan pembangunan menengah Java Hikvision SDK untuk membina sistem pengawasan video yang berkuasa

Gunakan Java Hikvision SDK untuk pembangunan sekunder untuk membina sistem pengawasan video yang berkuasa

Abstrak:
Artikel ini akan memperkenalkan cara menggunakan Java Hikvision SDK untuk pembangunan sekunder untuk membina sistem pengawasan video yang berkuasa. Melalui antara muka dan fungsi yang kaya yang disediakan oleh Hikvision SDK, kami boleh melaksanakan rakaman video, pratonton masa nyata, alat kawalan jauh dan fungsi lain dengan mudah serta menambah logik perniagaan tersuai. Artikel ini akan memperkenalkan secara terperinci cara menggunakan Java Hikvision SDK untuk pembangunan sekunder dan menyediakan beberapa contoh kod untuk membantu pembaca memahami dengan lebih baik.

Bahagian Pertama: Persediaan Alam Sekitar
Sebelum bermula, kita perlu membuat persediaan berikut:

  1. Muat turun dan pasang Java JDK.
  2. Muat turun dan pasang IDE, seperti Eclipse.
  3. Muat turun dan pasang Hikvision SDK.

Bahagian 2: Penciptaan dan konfigurasi projek

  1. Buat projek Java dan import pakej balang Hikvision SDK.
  2. Konfigurasikan parameter Hikvision SDK yang berkaitan, seperti IP peranti, nombor port, nama pengguna, kata laluan, dsb.
  3. Buat kelas utama untuk memulakan SDK dan melaksanakan operasi yang berkaitan.

Bahagian 3: Fungsi pratonton masa nyata
Pratonton masa nyata ialah salah satu fungsi paling asas dalam sistem pengawasan video. Berikut ialah contoh kod yang menunjukkan cara menggunakan Hikvision SDK untuk pratonton masa nyata:

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("退出成功");
    }
}

Bahagian 4: Fungsi rakaman video
Selain pratonton masa nyata, sistem pengawasan video juga perlu menyediakan fungsi rakaman video. Berikut ialah contoh kod yang menunjukkan cara menggunakan Hikvision SDK untuk rakaman video:

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("退出成功");
    }
}

Ringkasan:
Artikel ini memperkenalkan cara menggunakan Java Hikvision SDK untuk pembangunan sekunder untuk membina sistem pengawasan video yang berkuasa. Melalui antara muka dan fungsi yang disediakan oleh Hikvision SDK, kami boleh melaksanakan pratonton masa nyata, rakaman video dan fungsi lain serta menambah logik perniagaan tersuai. Saya harap artikel ini dapat membantu pembaca mempelajari dan menggunakan Java Hikvision SDK.

Atas ialah kandungan terperinci Gunakan pembangunan menengah Java Hikvision SDK untuk membina sistem pengawasan video yang berkuasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn