前情:本文僅記錄WPF調用sdk的方法。
1.下載海康威視sdk
鏈接地址:https://www.hikvision.com/cn/download_more_570.html
2.將官方demo的winform代碼轉到wpf中,此時發現winform中使用picturebox加載視頻,且需要傳入句柄。
所以想到使用wpf調用winform的控件。
引用System.Windows.Forms、System.Windows.Presentation和WindowsFormsIntegration。
在XAML界面中添加標簽。
xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
xmlns:wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
添加WindowsFormsHost控件:
打開工具箱,在所有WPF組件中選擇WindowsFormsHost,如果沒有該控件,可關閉工具箱並從視圖中重新打開工具箱
在WindowsFormsHost控件中添加picturebox控件。
<wf:PictureBox />
參考:
<Grid HorizontalAlignment="Left" Height="373" Margin="528,54,0,0" VerticalAlignment="Top" Width="445">
<WindowsFormsHost MaxHeight="300" Name="pictureBoxHost">
<wf:PictureBox />
</WindowsFormsHost >
</Grid >
后台使用:
var picbox = pictureHost.Child as System.Windows.Forms.PictureBox;//獲取句柄
lpPreviewInfo.hPlayWnd = picbox.Handle;//預覽窗口
完成wpf調用。
運行測試,結果報錯,提示找不到動態庫,此時動態庫已經按照官方提示放入到了運行路徑下。
查看從demo中拷貝過來的封裝庫文件CHCNetSDK發現加載動態庫的方式是在bin路徑下
我們項目的默認生成是在bin下的DuBug文件夾下。
修改所有的@"../bin/HCNetSDK.dll"。
將所有的@"../bin/HCNetSDK.dll"替換為@"HCNetSDK.dll"
測試完成