Maison  >  Article  >  Java  >  Guide technique de développement secondaire avancé du SDK Java Hikvision

Guide technique de développement secondaire avancé du SDK Java Hikvision

WBOY
WBOYoriginal
2023-09-06 11:22:481206parcourir

Guide technique de développement secondaire avancé du SDK Java Hikvision

Guide technique de développement secondaire du SDK Java Hikvision avancé

Introduction :
Avec le développement de la technologie et l'expansion continue des scénarios d'application, les systèmes de vidéosurveillance sont progressivement devenus un élément indispensable de la société moderne. Sur le marché, les produits Hikvision ont toujours occupé une position de leader, offrant une série de solutions de vidéosurveillance de haute qualité. Cependant, pour certains besoins particuliers, s'appuyer uniquement sur des fonctions natives peut ne pas être en mesure d'y répondre, ce qui nécessite un développement secondaire du SDK Hikvision. Cet article se concentrera sur la technologie avancée de développement secondaire du SDK Java Hikvision et donnera des exemples de code correspondants.

1. Téléchargement et installation du SDK

  1. Allez sur le site officiel de Hikvision et recherchez la page de téléchargement du SDK. Selon vos besoins, sélectionnez la version du SDK correspondante et cliquez pour télécharger.
  2. Une fois le téléchargement terminé, décompressez le fichier dans un répertoire local.
  3. Importez le SDK dans les outils de développement Java.

2. Configuration de l'environnement SDK

  1. Créez un nouveau projet Java dans l'outil de développement.
  2. Ajoutez le package jar dans le SDK aux dépendances du projet.
  3. Configurez les paramètres JVM et ajoutez le chemin de la bibliothèque de liens dynamiques correspondant.

3. Initialisation et connexion du SDK
Avant le développement secondaire, nous devons initialiser et nous connecter au SDK pour obtenir les autorisations d'exploitation correspondantes.

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. Aperçu vidéo
Cette section présentera comment effectuer des opérations de prévisualisation vidéo et montrera comment configurer une fonction de rappel pour obtenir des données vidéo en temps réel.

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反初始化...
    }
}

Conclusion : 
Ce qui précède est une introduction à la technologie avancée de développement secondaire Java Hikvision SDK. Grâce à la mise en œuvre de l'initialisation du SDK, de la connexion, de la prévisualisation vidéo et d'autres opérations, des exigences fonctionnelles plus personnalisées peuvent être réalisées. J'espère que cet article sera utile aux développeurs qui souhaitent effectuer un développement secondaire du SDK Hikvision.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn