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

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

Sep 06, 2023 am 11:22 AM
fortgeschrittenes JavaHaikang SDKTechnischer Leitfaden für die Sekundärentwicklung

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)