背景
最近鑑於項目的緣由開始着手開發物聯網系統,提到物聯網那攝像頭對接是怎麼也逃不掉的一個設備,而海康,大華,華爲攝像頭成了揮之不去的優選對象,本片文章主要記錄海康攝像頭對接樣例的調試,經過這篇文章但願後續探索者能夠作到拿來即用。html
材料
一、PC一臺網絡
二、海康DS-2DE**系列PTZ球機(注:根據海康官方的說法,該樣例適配與全部型號的提供二次開發的攝像頭)eclipse
三、路由器,網線spa
操做
一、在海康官網(https://www.hikvision.com/cn/download_61.html)SDK下載目錄下下載本身須要的版本3d
二、因爲我是採用JAVA進行對接開發,因此搭建eclipse 或相似IDE是必要環節(本環境採用了jdk1.8,至於細節配置就不在本篇文章中描述) 調試
三、解壓咱們從海康官網下載的SDK包code
四、IDE導入樣例中的JAVA樣例(我導入的是ClientDemo-NetBeansPro) htm
繼續對象
繼續blog
四、你們導入項目後會發現目錄結構和上面截圖中的不同,多了好多dll,不要急,這些dll是根據海康demo提示文件從下來目錄CP來的。
具體須要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返回的錯誤號判斷緣由。
五、修改 HCNetSDK 文件(位置以下截圖)
將上面文件中的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; //設備可配以太網絡
六、啓動ClientDemo 文件便可(文件中含有main方法)
七、啓動成功後會彈出以下窗口
八、輸入用戶名和密碼及IP,端口後點擊註冊,由於只有註冊成功了才能夠預覽(注意:攝像頭要激活才能夠操做,不然報註冊失敗,若是上面描述中的dll文件路徑錯了或者缺失了,和系統版本中的dll出現衝突了,這裏註冊都會只報註冊失敗,調試代碼獲得-1)
九、註冊成功後就能夠預覽和操做攝像頭了
結束
因爲運氣差仍是技術差或者見識少的緣故吧,過程當中遇到了不少坑,看着別的網友都能成功本身卻不行,難受。故分享此過程和源碼,便於後人一次性完成樣例的調試環節