Verwenden Sie Java Hikvision SDK für die Sekundärentwicklung, um ein leistungsstarkes Videoüberwachungssystem aufzubauen.
Zusammenfassung:
In diesem Artikel wird erläutert, wie Sie Java Hikvision SDK für die Sekundärentwicklung verwenden, um ein leistungsstarkes Videoüberwachungssystem aufzubauen. Durch die umfangreichen Schnittstellen und Funktionen des Hikvision SDK können wir problemlos Videoaufzeichnung, Echtzeitvorschau, Fernsteuerung und andere Funktionen implementieren und benutzerdefinierte Geschäftslogik hinzufügen. In diesem Artikel wird die Verwendung des Java Hikvision SDK für die Sekundärentwicklung ausführlich vorgestellt und einige Beispielcodes bereitgestellt, um den Lesern ein besseres Verständnis zu erleichtern.
Teil Eins: Umgebungsvorbereitung
Bevor wir beginnen, müssen wir die folgenden Vorbereitungen treffen:
Teil 2: Projekterstellung und -konfiguration
Teil 3: Echtzeit-Vorschaufunktion
Die Echtzeit-Vorschau ist eine der grundlegendsten Funktionen im Videoüberwachungssystem. Im Folgenden finden Sie einen Beispielcode, der die Verwendung des Hikvision SDK für die Echtzeitvorschau zeigt:
import com.sun.jna.NativeLong; import com.sun.jna.Pointer; import com.sun.jna.ptr.NativeLongByReference; import com.sun.jna.ptr.PointerByReference; import com.hikvision.netsdk.HCNetSDK; import com.hikvision.netsdk.NET_DVR_DEVICEINFO_V30; import com.hikvision.netsdk.NET_DVR_PREVIEWINFO; public class RealTimePreview { private static HCNetSDK hikSDK = HCNetSDK.INSTANCE; public static void main(String[] args) { // 初始化SDK hikSDK.NET_DVR_Init(); // 登录设备 NativeLong lUserID; NET_DVR_DEVICEINFO_V30 deviceInfo = new NET_DVR_DEVICEINFO_V30(); lUserID = hikSDK.NET_DVR_Login_V30("192.168.1.100", (short) 8000, "admin", "password", deviceInfo); if (lUserID.intValue() == -1) { System.out.println("登录失败,错误码:" + hikSDK.NET_DVR_GetLastError()); return; } // 设置预览参数 NativeLong lRealPlayHandle; NET_DVR_PREVIEWINFO previewInfo = new NET_DVR_PREVIEWINFO(); previewInfo.lChannel = 1; previewInfo.dwStreamType = 0; previewInfo.dwLinkMode = 0; previewInfo.hPlayWnd = null; // 开始预览 lRealPlayHandle = hikSDK.NET_DVR_RealPlay_V40(lUserID, previewInfo, null); if (lRealPlayHandle.intValue() == -1) { System.out.println("预览失败,错误码:" + hikSDK.NET_DVR_GetLastError()); return; } // 等待预览停止 System.out.println("按任意键停止预览..."); try { System.in.read(); } catch (Exception e) { e.printStackTrace(); } // 停止预览 if (!hikSDK.NET_DVR_StopRealPlay(lRealPlayHandle)) { System.out.println("停止预览失败,错误码:" + hikSDK.NET_DVR_GetLastError()); return; } // 退出登录 hikSDK.NET_DVR_Logout(lUserID); hikSDK.NET_DVR_Cleanup(); System.out.println("退出成功"); } }
Teil 4: Videoaufzeichnungsfunktion
Zusätzlich zur Echtzeitvorschau muss das Videoüberwachungssystem auch eine Videoaufzeichnungsfunktion bereitstellen. Im Folgenden finden Sie einen Beispielcode, der die Verwendung des Hikvision SDK für die Videoaufzeichnung zeigt:
import com.sun.jna.NativeLong; import com.sun.jna.ptr.NativeLongByReference; import com.hikvision.netsdk.HCNetSDK; import com.hikvision.netsdk.NET_DVR_DEVICEINFO_V30; import com.hikvision.netsdk.NET_DVR_PREVIEWINFO; import com.hikvision.netsdk.NET_DVR_TIME; public class VideoRecording { private static HCNetSDK hikSDK = HCNetSDK.INSTANCE; public static void main(String[] args) { // 初始化SDK hikSDK.NET_DVR_Init(); // 登录设备 NativeLong lUserID; NET_DVR_DEVICEINFO_V30 deviceInfo = new NET_DVR_DEVICEINFO_V30(); lUserID = hikSDK.NET_DVR_Login_V30("192.168.1.100", (short) 8000, "admin", "password", deviceInfo); if (lUserID.intValue() == -1) { System.out.println("登录失败,错误码:" + hikSDK.NET_DVR_GetLastError()); return; } // 设置预览参数 NativeLong lRealPlayHandle; NET_DVR_PREVIEWINFO previewInfo = new NET_DVR_PREVIEWINFO(); previewInfo.lChannel = 1; previewInfo.dwStreamType = 0; previewInfo.dwLinkMode = 0; previewInfo.hPlayWnd = null; // 开始预览 lRealPlayHandle = hikSDK.NET_DVR_RealPlay_V40(lUserID, previewInfo, null); if (lRealPlayHandle.intValue() == -1) { System.out.println("预览失败,错误码:" + hikSDK.NET_DVR_GetLastError()); return; } // 开始录像 NativeLongByReference lRecordHandle = new NativeLongByReference(); NET_DVR_TIME startTime = new NET_DVR_TIME(); startTime.dwYear = 2022; startTime.dwMonth = 12; startTime.dwDay = 1; startTime.dwHour = 0; startTime.dwMinute = 0; startTime.dwSecond = 0; if (!hikSDK.NET_DVR_SetFileTime(0, startTime)) { System.out.println("设置录像时间失败,错误码:" + hikSDK.NET_DVR_GetLastError()); return; } lRecordHandle.setValue(hikSDK.NET_DVR_RealPlay_V40(lUserID, previewInfo, null)); if (lRecordHandle.intValue() == -1) { System.out.println("录像失败,错误码:" + hikSDK.NET_DVR_GetLastError()); return; } // 等待录像停止 System.out.println("按任意键停止录像..."); try { System.in.read(); } catch (Exception e) { e.printStackTrace(); } // 停止录像 if (!hikSDK.NET_DVR_StopRealPlay(lRecordHandle.getValue())) { System.out.println("停止录像失败,错误码:" + hikSDK.NET_DVR_GetLastError()); return; } // 退出登录 hikSDK.NET_DVR_Logout(lUserID); hikSDK.NET_DVR_Cleanup(); System.out.println("退出成功"); } }
Zusammenfassung:
In diesem Artikel wird erläutert, wie Sie das Java Hikvision SDK für die Sekundärentwicklung verwenden, um ein leistungsstarkes Videoüberwachungssystem aufzubauen. Über die vom Hikvision SDK bereitgestellten Schnittstellen und Funktionen können wir Funktionen wie Echtzeitvorschau und Videoaufzeichnung implementieren und benutzerdefinierte Geschäftslogik hinzufügen. Ich hoffe, dieser Artikel kann den Lesern helfen, das Java Hikvision SDK zu erlernen und zu verwenden.
Das obige ist der detaillierte Inhalt vonNutzen Sie die Sekundärentwicklung des Java Hikvision SDK, um ein leistungsstarkes Videoüberwachungssystem aufzubauen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!