Heim  >  Artikel  >  Java  >  Erweiterter technischer Leitfaden für die Sekundärentwicklung des Java Hikvision SDK

Erweiterter technischer Leitfaden für die Sekundärentwicklung des Java Hikvision SDK

WBOY
WBOYOriginal
2023-09-06 11:22:481206Durchsuche

Erweiterter technischer Leitfaden für die Sekundärentwicklung des Java Hikvision SDK

Advanced Java Hikvision SDK Secondary Development Technical Guide

Einführung:
Mit der Entwicklung der Technologie und der kontinuierlichen Erweiterung der Anwendungsszenarien sind Videoüberwachungssysteme nach und nach zu einem unverzichtbaren Bestandteil der modernen Gesellschaft geworden. Auf dem Markt nehmen die Produkte von Hikvision seit jeher eine führende Position ein und bieten eine Reihe hochwertiger Videoüberwachungslösungen. Einige spezielle Anforderungen können jedoch möglicherweise nicht erfüllt werden, wenn man sich ausschließlich auf native Funktionen verlässt, was eine sekundäre Entwicklung des Hikvision SDK erfordert. Dieser Artikel konzentriert sich auf die fortschrittliche Sekundärentwicklungstechnologie Java Hikvision SDK und gibt entsprechende Codebeispiele.

1. SDK-Download und Installation

  1. Gehen Sie zur offiziellen Website von Hikvision und suchen Sie die SDK-Downloadseite. Wählen Sie je nach Bedarf die entsprechende SDK-Version aus und klicken Sie zum Herunterladen.
  2. Entpacken Sie die Datei nach Abschluss des Downloads in ein lokales Verzeichnis.
  3. SDK in Java-Entwicklungstools importieren.

2. SDK-Umgebungskonfiguration

  1. Erstellen Sie ein neues Java-Projekt im Entwicklungstool.
  2. Fügen Sie das JAR-Paket im SDK zu den Abhängigkeiten des Projekts hinzu.
  3. Konfigurieren Sie die JVM-Parameter und fügen Sie den entsprechenden Pfad der Dynamic Link Library hinzu.

3. SDK-Initialisierung und Anmeldung
Vor der Sekundärentwicklung müssen wir das SDK initialisieren und uns anmelden, um die entsprechenden Betriebsberechtigungen zu erhalten.

import com.sun.jna.NativeLong;
import com.sun.jna.Pointer;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.ptr.PointerByReference;
import com.hikvision.netsdk.HCNetSDK;

public class SDKDemo {
    private static HCNetSDK hCNetSDK = HCNetSDK.INSTANCE;

    public static void main(String[] args) {
        // SDK初始化
        boolean initSuc = hCNetSDK.NET_DVR_Init();
        if (initSuc != true) {
            System.out.println("SDK初始化失败!");
            return;
        }

        // 登录
        HCNetSDK.NET_DVR_DEVICEINFO_V30 deviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V30();
        NativeLong lUserId = hCNetSDK.NET_DVR_Login_V30("192.168.1.100", (short) 8000,
                "admin", "password", deviceInfo);
        if (lUserId.longValue() < 0) {
            System.out.println("登录失败:" + hCNetSDK.NET_DVR_GetLastError());
            return;
        }

        // 登出
        boolean logoutSuc = hCNetSDK.NET_DVR_Logout(lUserId);
        if (logoutSuc != true) {
            System.out.println("登出失败:" + hCNetSDK.NET_DVR_GetLastError());
            return;
        }

        // SDK反初始化
        boolean cleanupSuc = hCNetSDK.NET_DVR_Cleanup();
        if (cleanupSuc != true) {
            System.out.println("SDK反初始化失败!");
            return;
        }
    }
}

4. Videovorschau
In diesem Abschnitt wird erläutert, wie Sie Videovorschauvorgänge durchführen und wie Sie eine Rückruffunktion einrichten, um Videodaten in Echtzeit zu erhalten.

import com.sun.jna.CallbackThreadInitializer;
import com.sun.jna.NativeLong;
import com.sun.jna.Pointer;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.ptr.PointerByReference;
import com.hikvision.netsdk.*;

public class SDKDemo {
    private static HCNetSDK hCNetSDK = HCNetSDK.INSTANCE;

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

        // 登录...

        // 实时预览
        NativeLong lRealPlayHandle = hCNetSDK.NET_DVR_RealPlay_V30(lUserId, deviceInfo.byStartChan, null, null, true);
        if (lRealPlayHandle.longValue() < 0) {
            System.out.println("实时预览失败:" + hCNetSDK.NET_DVR_GetLastError());
            return;
        }

        // 设置预览回调函数
        HCNetSDK.FRealDataCallBack fRealDataCallBack = new HCNetSDK.FRealDataCallBack() {
            public void invoke(NativeLong lRealHandle, int dwDataType, Pointer pBuffer, int dwBufSize, Pointer pUser) {
                if (dwDataType == HCNetSDK.NET_DVR_SYSHEAD) {
                    // 获取系统头数据
                    System.out.println("收到系统头数据");
                } else if (dwDataType == HCNetSDK.NET_DVR_STREAMDATA) {
                    // 获取流数据
                    byte[] data = pBuffer.getByteArray(0, dwBufSize);
                    System.out.println("接收到视频数据:" + data.length);
                }
            }
        };

        boolean setCallbackSuc = hCNetSDK.NET_DVR_SetRealDataCallBack(lRealPlayHandle, fRealDataCallBack, null);
        if (setCallbackSuc != true) {
            System.out.println("设置预览回调函数失败:" + hCNetSDK.NET_DVR_GetLastError());
            return;
        }
        
        // 停止预览
        boolean stopPlaySuc = hCNetSDK.NET_DVR_StopRealPlay(lRealPlayHandle);
        if (stopPlaySuc != true) {
            System.out.println("停止预览失败:" + hCNetSDK.NET_DVR_GetLastError());
            return;
        }

        // 登出...

        // SDK反初始化...
    }
}

Fazit:
Das Obige ist eine Einführung in die fortschrittliche Sekundärentwicklungstechnologie Java Hikvision SDK. Durch die Implementierung von SDK-Initialisierung, Anmeldung, Videovorschau und anderen Vorgängen können personalisiertere Funktionsanforderungen realisiert werden. Ich hoffe, dass dieser Artikel für Entwickler hilfreich sein wird, die eine Sekundärentwicklung des Hikvision SDK durchführen möchten.

Das obige ist der detaillierte Inhalt vonErweiterter technischer Leitfaden für die Sekundärentwicklung des Java Hikvision SDK. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn