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
2. Konfigurasi persekitaran SDK
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!