1.10.3 視頻采集卡中的主要函數
安裝視頻采集卡后,接下來便是通過程序操作采集卡。購買視頻采集卡時帶有SDK開發(fā)包,其中提供了操作視頻采集卡的函數(封裝在Sa7134Capture.dll動態(tài)鏈接庫中)。下面介紹操作視頻采集卡的主要函數。
(1)VCAInitSdk函數
該函數用于初始化開發(fā)包。在使用SDK開發(fā)包中的函數前,首先需要調用該函數進行初始化。語法如下:
[DllImport("Sa7134Capture.dll", EntryPoint = "VCAInitSdk")]
public extern static bool VCAInitSdk(IntPtr hWndMain, DISPLAYTRANSTYPE eDispTransType, bool bInitAudDev);
參數說明:
hWndMain:表示視頻顯示多路小窗口的父窗口。
eDispTransType:表示顯示類型。
bInitAudDev:表示是否初始化音頻設備。
(2)VCAUnInitSdk函數
該函數用于釋放調用VCAInitSdk函數分配的系統(tǒng)資源,通常在程序結束時調用該函數。語法如下:
[DllImport("Sa7134Capture.dll", EntryPoint = "VCAUnInitSdk")]
public extern static void VCAUnInitSdk();
(3)VCAGetDevNum函數
該函數用于獲得監(jiān)控卡中芯片的數量。通常,監(jiān)控卡支持多少路視頻,將會存在多少個芯片。語法如下:
[DllImport("Sa7134Capture.dll", EntryPoint = "VCAGetDevNum")]
public extern static int VCAGetDevNum();
返回值:表示系統(tǒng)中安裝在監(jiān)控卡上的芯片數量。
(4)VCAOpenDevice函數
該函數用于打開指定卡號的設備,并分配相應的系統(tǒng)資源。語法如下:
[DllImport("Sa7134Capture.dll", EntryPoint = "VCAOpenDevice")]
public extern static bool VCAOpenDevice(Int32 dwCard, IntPtr hPreviewWnd);
參數說明:
dwCard:表示視頻捕捉的卡號。
hPreviewWnd:表示視頻預覽窗口句柄。
(5)VCACloseDevice函數
該函數用于關閉指定卡號的設備,釋放相應系統(tǒng)資源。語法如下:
[DllImport("Sa7134Capture.dll", EntryPoint = "VCACloseDevice")]
public extern static bool VCACloseDevice(Int32 dwCard);
參數說明:
dwCard:表示視頻捕捉的卡號。
(6)VCAStartVideoPreview函數
該函數用于打開視頻預覽窗口。語法如下:
[DllImport("Sa7134Capture.dll", EntryPoint = "VCAStartVideoPreview")]
public extern static bool VCAStartVideoPreview(Int32 dwCard);
參數說明:
dwCard:表示預覽的視頻卡號。
(7)VCAStopVideoPreview函數
該函數用于停止視頻預覽。語法如下:
[DllImport("Sa7134Capture.dll", EntryPoint = "VCAStopVideoPreview")]
public extern static bool VCAStopVideoPreview(Int32 dwCard);
參數說明:
dwCard:表示停止預覽的視頻卡號。
(8)VCAUpdateOverlayWnd函數
該函數用于更新視頻預覽窗口。當預覽窗口的父窗口大小或位置改變時,需要調用該函數進行調整。語法如下:
[DllImport("Sa7134Capture.dll", EntryPoint = "VCAUpdateOverlayWnd")]
public extern static bool VCAUpdateOverlayWnd(IntPtr hOverlayWnd);
參數說明:
hOverlayWnd:表示預覽窗口的父窗口。
(9)VCAUpdateVideoPreview函數
該函數用于更新視頻預覽窗口。當預覽窗口的大小和位置需要調整時調用該函數。通常,在調用該函數前,需要調用VCAUpdateOverlayWnd函數。語法如下:
[DllImport("Sa7134Capture.dll", EntryPoint = "VCAUpdateVideoPreview")]
public extern static bool VCAUpdateVideoPreview(Int32 dwCard, IntPtr hPreviewWnd);
參數說明:
dwCard:表示視頻卡號。
hPreviewWnd:表示視頻預覽窗口。
由于篇幅有限,這里就不再對視頻采集卡的SDK開發(fā)包中的函數進行一一說明,它們的詳細語法格式可參見1.4.4節(jié)。
1.11 本 章 總 結
本章主要介紹了如何使用C#代碼控制視頻采集卡。在開發(fā)過程中,首要考慮的問題就是系統(tǒng)的需求分析以及如何操作視頻采集卡。因為視頻采集卡屬于硬件設施,是依靠COM端口與計算機交互信息的,因此在操作視頻采集卡時,需要利用其附帶的動態(tài)鏈接庫調用其中的各種方法實現視頻監(jiān)控功能。