一、前言
本文為海康SDK JAVA版本Demo的介紹,采用Eclipse運行,以及一些問題記錄。
海康SDK版本:SDK_Win32
Eclipse版本:Mars2.0
JDK版本:1.8.0_151 32位
二、下載
官網文檔 https://www.hikvision.com/cn/download_61.html
請根據需要下載,這里我下載的是 設備網絡SDK_Win32 https://www.hikvision.com/cn/download_more_401.html
三、解壓成項目運行
下載完后解壓,將1-ClientDemo(C:\Users\chendaliang\Desktop\4- Java 開發示例\1-ClientDemo\ClientDemo-NetBeansPro)文件復制到你的JAVA項目目錄,然后根據注意事項:
【Demo內容說明】
-------------------------------------
1. 該Demo主要介紹預覽、回放、雲台控制、參數配置等基本功能
【注意事項】
------------------------------------
1. 請到海康威視官網下載最新版本設備網絡SDK:http://www.hikvision.com/Cn/download_more_401.html
2. 請修改程序代碼,其中HCNetSDK.java文件自己指定loadlibrary加載庫的路徑,【庫文件】里的HCNetSDK.dll、HCCore.dll、HCNetSDKCom文件夾、PlayCtrl.dll、SuperRender.dll、AudioRender.dll、ssleay32.dll、libeay32.dll等文件均拷貝到lib文件夾下。
HCNetSDKCom文件夾(包含里面的功能組件dll庫文件)需要和HCNetSDK.dll、HCCore.dll一起加載,放在同一個目錄下,且HCNetSDKCom文件夾名不能修改。
3. 如果自行開發軟件不能正常實現相應功能,而且程序沒有指定加載的dll庫路徑,請在程序運行的情況下嘗試刪除HCNetSDK.dll。如果可以刪除,說明程序可能調用到系統盤Windows->System32目錄下的dll文件,建議刪除或者更新該目錄下的相關dll文件;如果不能刪除,dll文件右鍵選擇屬性確認SDK庫版本。
4. 如按上述步驟操作后還是不能實現相應功能,請根據NET_DVR_GetLastError返回的錯誤號判斷原因。
這里我將Demo中全部的DLL以及HCNetSDKCom文件夾都復制到項目根目錄中,以防麻煩,可能在注冊時出現資源分配失敗
轉到eclipse,項目導入jna.jar和examples.jar
打開HCNetSDK.java,由於HCNetSDK.dll和PlayCtrl.dll路徑均為相對路徑,將其修改為你的絕對路徑.
HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary("C:\\Users\\chendaliang\\Desktop\\java workspace\\hikcentral\\HCNetSDK", HCNetSDK.class);
PlayCtrl INSTANCE = (PlayCtrl) Native.loadLibrary("C:\\Users\\chendaliang\\Desktop\\java workspace\\hikcentral\\PlayCtrl.dll",
PlayCtrl.class);
對ClientDemo.java的一些BUG進行修正,如HWND未聲明等。運行項目:
但注冊會發生注冊失敗,我們在注冊時檢查發現SDK未初始化,我們在jButtonLoginActionPerformed函數加入hCNetSDK.NET_DVR_Init();
,成功運行獲得預覽窗口
四、尾聲
以上就是海康SDK JAVA版本的運行過程,如果仍然有疑問可以在博客下方留言,我會及時回復,謝謝!