首页上一页 1 下一页尾页 3 条记录 1/1页
程序开发范例宝典 实例426 摄像头监控录像 怎么设置成有动的时候录像,不动时不录呀
发表在C#图书答疑
2010-07-23
是否精华
是
否
版块置顶:
是
否
程序开发范例宝典 实例426 摄像头监控录像 怎么设置成有动的时候录像,不动时不录呀,想作个程序放在机房的电脑上,有人进去时就录像,保存成aiv文件,没有人进时就不录。一直录的话,很难去查记录,又占硬盘空间。
426
摄像头监控录像
实例说明
本例是为通过摄像头来实现监控录像的程序。运行本例后,单击【开始监控】
按钮,程序将自动开始录像,录像文件(lx.avi)将保存在D 盘根目录下。运行
程序,效果如图13.10 所示。
技术要点
在实例“简易视频程序”的技术要点中,使用的技术和相关函数已经介绍过。
在这里主要介绍如何将捕获的视频制作成 .AVI 媒体文件。实现技术为主要通过
SendMessage 函数发送Windows 消息机制,消息值WM_CAP_FILE_SET_CAPTURE_F
ILEA 和WM_CAP_SEQUENCE,分别用来设置视频捕捉的文件名称和初始化视频流,
捕捉视频信息到文件:
private const int WM_USER = 0x400;
private const int WM_CAP_START = WM_USER;
private const int WM_CAP_SEQUENCE = WM_CAP_START + 62;
private const int WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 2
0;
实现关键代码如下:
IntPtr hBmp = Marshal.StringToHGlobalAnsi(path);
SendMessage(hWndC,WM_CAP_FILE_SET_CAPTURE_FILEA,0, hBmp.ToInt32
());
SendMessage(hWndC, WM_CAP_SEQUENCE, 0, 0);
实现过程
(1)新建一个项目,命名为Ex13_09,默认窗体为Form1,添加一个类文件
(.CS),用于编写视频类。
(2)在Form1 窗体中,主要添加一个PictrueBox 控件,用于显示视频;添
加4 个Button 控件,用于开始监控、停止监控和监控程序。
(3)视频类中主要程序代码如下:
/// <summary>
///
开始录像
/// </summary>
/// <param name="path">
要保存录像的路径
</param>
public void StarKinescope(string path)
{
IntPtr hBmp = Marshal.StringToHGlobalAnsi(path);
SendMessage(hWndC,WM_CAP_FILE_SET_CAPTURE_FILEA,0, hBmp.ToInt32
());
SendMessage(hWndC, WM_CAP_SEQUENCE, 0, 0);
}
/// <summary>
///
停止录像
/// </summary>
public void StopKinescope()
{
426
摄像头监控录像
实例说明
本例是为通过摄像头来实现监控录像的程序。运行本例后,单击【开始监控】
按钮,程序将自动开始录像,录像文件(lx.avi)将保存在D 盘根目录下。运行
程序,效果如图13.10 所示。
技术要点
在实例“简易视频程序”的技术要点中,使用的技术和相关函数已经介绍过。
在这里主要介绍如何将捕获的视频制作成 .AVI 媒体文件。实现技术为主要通过
SendMessage 函数发送Windows 消息机制,消息值WM_CAP_FILE_SET_CAPTURE_F
ILEA 和WM_CAP_SEQUENCE,分别用来设置视频捕捉的文件名称和初始化视频流,
捕捉视频信息到文件:
private const int WM_USER = 0x400;
private const int WM_CAP_START = WM_USER;
private const int WM_CAP_SEQUENCE = WM_CAP_START + 62;
private const int WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 2
0;
实现关键代码如下:
IntPtr hBmp = Marshal.StringToHGlobalAnsi(path);
SendMessage(hWndC,WM_CAP_FILE_SET_CAPTURE_FILEA,0, hBmp.ToInt32
());
SendMessage(hWndC, WM_CAP_SEQUENCE, 0, 0);
实现过程
(1)新建一个项目,命名为Ex13_09,默认窗体为Form1,添加一个类文件
(.CS),用于编写视频类。
(2)在Form1 窗体中,主要添加一个PictrueBox 控件,用于显示视频;添
加4 个Button 控件,用于开始监控、停止监控和监控程序。
(3)视频类中主要程序代码如下:
/// <summary>
///
开始录像
/// </summary>
/// <param name="path">
要保存录像的路径
</param>
public void StarKinescope(string path)
{
IntPtr hBmp = Marshal.StringToHGlobalAnsi(path);
SendMessage(hWndC,WM_CAP_FILE_SET_CAPTURE_FILEA,0, hBmp.ToInt32
());
SendMessage(hWndC, WM_CAP_SEQUENCE, 0, 0);
}
/// <summary>
///
停止录像
/// </summary>
public void StopKinescope()
{