因爲工做須要,項目中有使用到海康威視
的產品,不可避免的就要使用海康的SDK進行二次開發。開發過程當中磕磕絆絆的,踩了很多坑,這裏作一個簡單的記錄,算是給健忘的本身提個醒吧。前端
首先,本身一直使用Delphi
進行開發,然而海康官方只提供了C/C++的接口和示例,無奈只能本身改寫了。改寫完的部分已經上傳,但願能有人共同來完善。 git
預覽時播放聲音,回放時播放聲音,甚至使用播放庫播放已下載的視頻時播放聲音,這些對於前端攝像頭自帶麥克的場景確定是剛需(另接麥克的狀況暫未測試),然而按照官方SDK文檔和示例代碼寫出的程序死活就是沒有聲音,這樣的狀況彷佛很多人都遇到過,可是,好像並無見誰把解決方法公開過。函數
其實,這個問題特別簡單,只須要把HCNetSDKCom
目錄下的OpenAL32.dll
拷貝到PlayCtrl.dll
所在的目錄下就能夠了。這下就明白了吧,沒有聲音的緣由其實就是使用NET_DVR_OpenSound
調了PlayCtrl.dll
,而PlayCtrl.dll
又調了OpenAL32.dll
來播放聲音,可是因爲PlayCtrl.dll
沒有找到OpenAL32.dll
因此沒有聲音,並且這個有問題的返回值也並無一層層的返回給NET_DVR_OpenSound
函數,結果就是函數返回調用成功了,但就是死活沒聲音。測試
使用海康SDK進行二次開發的,通常也會使用到海康的播放庫,可是有一個問題是須要注意的,那就是SDK裏的PlayCtrl.dll
並非播放庫裏的PlayCtrl.dll
。雖然它們長得同樣,名字也同樣,但它們的本質倒是徹底不同的,是不能互相替代的!有興趣的朋友可使用eXeScope
詳細查看。code