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