正文

家庭視頻監(jiān)控系統(tǒng)(21)

C#項(xiàng)目開發(fā)案例全程實(shí)錄(第2版) 作者:明日科技


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)控功能。


上一章目錄下一章

Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號