使用海康威視SDK的那些坑

因爲工做須要,項目中有使用到海康威視的產品,不可避免的就要使用海康的SDK進行二次開發。開發過程當中磕磕絆絆的,踩了很多坑,這裏作一個簡單的記錄,算是給健忘的本身提個醒吧。前端

Delphi版本的接口

首先,本身一直使用Delphi進行開發,然而海康官方只提供了C/C++的接口和示例,無奈只能本身改寫了。改寫完的部分已經上傳,但願能有人共同來完善。 Fork me on Giteegit

  1. 播放聲音

預覽時播放聲音,回放時播放聲音,甚至使用播放庫播放已下載的視頻時播放聲音,這些對於前端攝像頭自帶麥克的場景確定是剛需(另接麥克的狀況暫未測試),然而按照官方SDK文檔和示例代碼寫出的程序死活就是沒有聲音,這樣的狀況彷佛很多人都遇到過,可是,好像並無見誰把解決方法公開過。函數

其實,這個問題特別簡單,只須要把HCNetSDKCom目錄下的OpenAL32.dll拷貝到PlayCtrl.dll所在的目錄下就能夠了。這下就明白了吧,沒有聲音的緣由其實就是使用NET_DVR_OpenSound調了PlayCtrl.dll,而PlayCtrl.dll又調了OpenAL32.dll來播放聲音,可是因爲PlayCtrl.dll沒有找到OpenAL32.dll因此沒有聲音,並且這個有問題的返回值也並無一層層的返回給NET_DVR_OpenSound函數,結果就是函數返回調用成功了,但就是死活沒聲音。測試

  1. PlayCtrl.dll不是PlayCtrl.dll

使用海康SDK進行二次開發的,通常也會使用到海康的播放庫,可是有一個問題是須要注意的,那就是SDK裏的PlayCtrl.dll並非播放庫裏的PlayCtrl.dll。雖然它們長得同樣,名字也同樣,但它們的本質倒是徹底不同的,是不能互相替代的!有興趣的朋友可使用eXeScope詳細查看。code

有朋友遇到其它坑的,歡迎留言交流。

相關文章
相關標籤/搜索