天天看點

海康攝像頭SDK開發之樣例調試(JAVA)

背景

最近鑒于項目的原因開始着手開發物聯網系統,提到物聯網那攝像頭對接是怎麼也逃不掉的一個裝置,而海康,大華,華為攝像頭成了揮之不去的優選對象,本片文章主要記錄海康攝像頭對接樣例的調試,通過這篇文章希望後續探索者可以做到拿來即用。

材料

1、PC一台

2、海康DS-2DE**系列PTZ球機(注:根據海康官方的說法,該樣例适配與所有型号的提供二次開發的攝像頭)

3、路由器,網線

操作

1、在海康官網(https://www.hikvision.com/cn/download_61.html)SDK下載下傳目錄下下載下傳自己需要的版本

海康攝像頭SDK開發之樣例調試(JAVA)

2、由于我是采用JAVA進行對接開發,是以搭建eclipse 或類似IDE是必要環節(本環境采用了jdk1.8,至于細節配置就不在本篇文章中描述) 

海康攝像頭SDK開發之樣例調試(JAVA)

3、解壓我們從海康官網下載下傳的SDK包

海康攝像頭SDK開發之樣例調試(JAVA)

4、IDE導入樣例中的JAVA樣例(我導入的是ClientDemo-NetBeansPro) 

海康攝像頭SDK開發之樣例調試(JAVA)

繼續

海康攝像頭SDK開發之樣例調試(JAVA)

繼續

海康攝像頭SDK開發之樣例調試(JAVA)

4、大家導入項目後會發現目錄結構和上面截圖中的不一樣,多了好多dll,不要急,這些dll是根據海康demo提示檔案從下來目錄CP來的。

海康攝像頭SDK開發之樣例調試(JAVA)

具體需要CP 哪些dll,可以對照我上面工程的截圖,也可以根據海康的提示txt檔案進行

【注意事項】
------------------------------------
1. 更新裝置網絡SDK時,SDK開發包【庫檔案】裡的HCNetSDK.dll、HCCore.dll、PlayCtrl.dll、SuperRender.dll、AudioRender.dll、HCNetSDKCom檔案夾、ssleay32.dll、libeay32.dll、hlog.dll、hpr.dll、zlib1.dll、log4cxx.properties等檔案均要加載到程式裡面,【HCNetSDKCom檔案夾】(包含裡面的功能元件dll庫檔案)需要和HCNetSDK.dll、HCCore.dll一起加載,放在同一個目錄下,且HCNetSDKCom檔案夾名不能修改。

2. 如果自行開發軟體不能正常實作相應功能,而且程式沒有指定加載的dll庫路徑,請在程式運作的情況下嘗試删除HCNetSDK.dll。如果可以删除,說明程式可能調用到系統盤Windows->System32目錄下的dll檔案,建議删除或者更新該目錄下的相關dll檔案;如果不能删除,dll檔案右鍵選擇屬性确認SDK庫版本。

3. 如按上述步驟操作後還是不能實作相應功能,請根據NET_DVR_GetLastError傳回的錯誤号判斷原因。
           

5、修改 HCNetSDK 檔案(位置如下截圖)

海康攝像頭SDK開發之樣例調試(JAVA)

将上面檔案中的HCnetSDK 類中加載dll庫的位址修改下,我這裡為了友善使用了絕對位址,主要末尾的“.dll”字尾不能丢,至少我驗證的是不能丢

//SDK接口說明,HCNetSDK.dll
public interface HCNetSDK extends StdCallLibrary {

    HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary("E:\\***\\hk\\ClientDemo-NetBeansPro\\HCNetSDK.dll",
            HCNetSDK.class);
    /***宏定義***/
    //常量

    public static final int MAX_NAMELEN = 16;	//DVR本地登陸名
    public static final int MAX_RIGHT = 32;	//裝置支援的權限(1-12表示本地權限,13-32表示遠端權限)
    public static final int NAME_LEN = 32;    //使用者名長度
    public static final int PASSWD_LEN = 16;    //密碼長度
    public static final int SERIALNO_LEN = 48;   //序列号長度
    public static final int MACADDR_LEN = 6;      //mac位址長度
    public static final int MAX_ETHERNET = 2;   //裝置可配以太網絡
           

6、啟動ClientDemo 檔案即可(檔案中含有main方法) 

7、啟動成功後會彈出如下視窗

海康攝像頭SDK開發之樣例調試(JAVA)

8、輸入使用者名和密碼及IP,端口後點選注冊,因為隻有注冊成功了才可以預覽(注意:攝像頭要激活才可以操作,否則報注冊失敗,如果上面描述中的dll檔案路徑錯了或者缺失了,和系統版本中的dll出現沖突了,這裡注冊都會隻報注冊失敗,調試代碼得到-1)

9、注冊成功後就可以預覽和操作攝像頭了

海康攝像頭SDK開發之樣例調試(JAVA)

 結束

由于運氣差還是技術差或者見識少的緣故吧,過程中遇到了很多坑,看着别的網友都能成功自己卻不行,難受。故分享此過程和源碼,便于後人一次性完成樣例的調試環節

繼續閱讀