海康SDK java調用中遇到的問題

   第一次寫東西,有不好的地方請大神指出

1.  海康威視官網下載最新版本設備網絡SDK:http://www.hikvision.com/Cn/download_more_401.html,注意32位64位http://www.hikvision.com/Cn/download_more_401.html

解壓之後會有個說明,具體內容如下:

【Demo內容說明】

-------------------------------------
1. 該Demo主要介紹預覽、回放、雲臺控制、參數配置等基本功能

【注意事項】
------------------------------------
1. 請到海康威視官網下載最新版本設備網絡SDK:http://www.hikvision.com/Cn/download_more_401.html

2. 請修改程序代碼,其中HCNetSDK.java文件自己指定loadlibrary加載庫的路徑,【庫文件】裏的HCNetSDK.dll、HCCore.dll、PlayCtrl.dll、SuperRender.dll、HCNetSDKCom文件夾等文件均拷貝到該路徑下。

   HCNetSDKCom文件夾(包含裏面的功能組件dll庫文件)需要和HCNetSDK.dll、HCCore.dll一起加載,放在同一個目錄下,且HCNetSDKCom文件夾名不能修改。

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

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



然後按照這個步驟你會發現出現Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'HCNetSDK': ÕҲ»µ½ָ¶¨這個錯誤,此時不要慌,你調用的沒錯是因爲文檔少寫個dll

此時請加入AudioRender.dll然後在運行就可以了


成功之後呢我們直接運行demo可以出現界面,但是界面是需要登錄的,如果攝像頭是固定IP就好說,但是如果是動態IP在登錄之前是需要調用獲取動態IP的接口NET_DVR_GetDVRIPByResolveSvr_EX 但是當你使用java調用的時候會發現他的out參數是個String類型,這在java中是不行的,那麼怎麼辦呢?此時我們需要修改HCNetSDK中的NET_DVR_GetDVRIPByResolveSvr_EX 這個方法參數,把sGetIp類型改爲byte[] 就可以了,然後調用的時候把byte[] 設置大點,比如這樣byte sGetIP[]= new byte[20];然後調用的時候會返回一大串數組,在new String(sGetIp)就可以得到動態IP了


剩下的接口就很簡單了,由於今天感冒了,這篇文檔先到此位置了,過幾天我會把 獲取rtsp流轉爲rtmp流中遇到的問題,以及linux中統計在線觀看人數寫出來,此文章有不當之處,請大佬們清噴,我還是萌新




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章