Rumah >Java >javaTutorial >Panduan Teknikal Pembangunan Menengah Java Hikvision SDK

Panduan Teknikal Pembangunan Menengah Java Hikvision SDK

WBOY
WBOYasal
2023-09-06 11:22:481218semak imbas

Panduan Teknikal Pembangunan Menengah Java Hikvision SDK

Panduan Teknikal Pembangunan Menengah Java Hikvision SDK

Pengenalan:
Dengan perkembangan teknologi dan pengembangan berterusan senario aplikasi, sistem pengawasan video secara beransur-ansur menjadi bahagian yang amat diperlukan dalam masyarakat moden. Di pasaran, produk Hikvision sentiasa berada di kedudukan utama, menyediakan satu siri penyelesaian pengawasan video berkualiti tinggi. Walau bagaimanapun, untuk sesetengah keperluan khas, bergantung semata-mata pada fungsi asli mungkin tidak dapat memenuhinya, yang memerlukan pembangunan sekunder Hikvision SDK. Artikel ini akan menumpukan pada teknologi pembangunan menengah Java Hikvision SDK dan memberikan contoh kod yang sepadan.

1. Muat turun dan pemasangan SDK

  1. Pergi ke tapak web rasmi Hikvision dan cari halaman muat turun SDK. Mengikut keperluan anda, pilih versi SDK yang sepadan dan klik untuk memuat turun.
  2. Selepas muat turun selesai, nyahzip fail ke direktori tempatan.
  3. Import SDK ke dalam alatan pembangunan Java.

2. Konfigurasi persekitaran SDK

  1. Buat projek Java baharu dalam alat pembangunan.
  2. Tambahkan pakej balang dalam SDK pada kebergantungan projek.
  3. Konfigurasikan parameter JVM dan tambahkan laluan perpustakaan pautan dinamik yang sepadan.

3. Permulaan dan Log Masuk SDK
Sebelum pembangunan sekunder, kami perlu memulakan dan log masuk ke SDK untuk mendapatkan kebenaran operasi yang sepadan.

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 Pratonton Video
Bahagian ini akan memperkenalkan cara melakukan operasi pratonton video dan menunjukkan cara menyediakan fungsi panggil balik untuk mendapatkan data video dalam masa nyata.

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

Kesimpulan:
Di atas adalah pengenalan kepada teknologi pembangunan menengah Java Hikvision SDK. Melalui pelaksanaan permulaan SDK, log masuk, pratonton video dan operasi lain, keperluan fungsi yang lebih diperibadikan dapat direalisasikan. Saya harap artikel ini akan membantu pembangun yang ingin menjalankan pembangunan sekunder Hikvision SDK.

Atas ialah kandungan terperinci Panduan Teknikal Pembangunan Menengah Java Hikvision SDK. 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