家庭视频监控系统(21)

1.10.3 视频采集卡中的主要函数

安装视频采集卡后,接下来便是通过程序操作采集卡。购买视频采集卡时带有SDK开发包,其中提供了操作视频采集卡的函数(封装在Sa7134Capture.dll动态链接库中)。下面介绍操作视频采集卡的主要函数。

(1)VCAInitSdk函数

该函数用于初始化开发包。在使用SDK开发包中的函数前,首先需要调用该函数进行初始化。语法如下:

[DllImport("Sa7134Capture.dll", EntryPoint = "VCAInitSdk")]

public extern static bool VCAInitSdk(IntPtr hWndMain, DISPLAYTRANSTYPE eDispTransType, bool bInitAudDev);

参数说明:

hWndMain:表示视频显示多路小窗口的父窗口。

eDispTransType:表示显示类型。

bInitAudDev:表示是否初始化音频设备。

(2)VCAUnInitSdk函数

该函数用于释放调用VCAInitSdk函数分配的系统资源,通常在程序结束时调用该函数。语法如下:

[DllImport("Sa7134Capture.dll", EntryPoint = "VCAUnInitSdk")]

public extern static void VCAUnInitSdk();

(3)VCAGetDevNum函数

该函数用于获得监控卡中芯片的数量。通常,监控卡支持多少路视频,将会存在多少个芯片。语法如下:

[DllImport("Sa7134Capture.dll", EntryPoint = "VCAGetDevNum")]

public extern static int VCAGetDevNum();

返回值:表示系统中安装在监控卡上的芯片数量。

(4)VCAOpenDevice函数

该函数用于打开指定卡号的设备,并分配相应的系统资源。语法如下:

[DllImport("Sa7134Capture.dll", EntryPoint = "VCAOpenDevice")]

public extern static bool VCAOpenDevice(Int32 dwCard, IntPtr hPreviewWnd);

参数说明:

dwCard:表示视频捕捉的卡号。

hPreviewWnd:表示视频预览窗口句柄。

(5)VCACloseDevice函数

该函数用于关闭指定卡号的设备,释放相应系统资源。语法如下:

[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开发包中的函数进行一一说明,它们的详细语法格式可参见1.4.4节。

1.11 本 章 总 结

本章主要介绍了如何使用C#代码控制视频采集卡。在开发过程中,首要考虑的问题就是系统的需求分析以及如何操作视频采集卡。因为视频采集卡属于硬件设施,是依靠COM端口与计算机交互信息的,因此在操作视频采集卡时,需要利用其附带的动态链接库调用其中的各种方法实现视频监控功能。

下一章

读书导航