APP下载

基于VC++.NET的视频会议管理系统设计

2011-06-12宋东民吴瑞辉

网络安全技术与应用 2011年1期
关键词:会议记录代码数据库

宋东民 吴瑞辉

1河北钢铁集团矿业有限公司 河北 063000 2河北农业大学机电工程学院 河北 071000

0 引言

该软件采用 Microsoft公司的 VC++.NET进行开发。VC++.NET具有以下特点:以C++语言为基础,生成的可执行文件小,效率高;具有强大的调试功能;具有强大的硬件控制功能和较强的底层控制能力;具有丰富的帮助文档MSDN;对Windows系统新技术具有很好的支持。

1 总体设计

通过对用户的需求分析,设计了系统的框架。视频会议管理软件由视频管理、综合设置、会议管理、系统维护和系统帮助组成。设计各部分的具体功能如下:

(1)视频管理模块:该模块包括视频采集和结束采集。

(2)综合设置模块:该模块由视频格式设定、综合设定、图像截取、视频压缩和录像5部分组成。

(3)会议管理模块:该模块包括会议记录和会议查询。

(4)系统维护模块:该模块包括数据备份、数据恢复、系统初始化和自动运行4部分。

(5)系统帮助模块:该模块包括视频简介和帮助内容。

2 软件设计

2.1 数据库设计

系统采用SQL Server 2000数据库,系统的数据库名为DB_Video。SQL Server 2000的数据库创建有两种方式,一种是利用企业管理器,另一种是在SQL Server 2000的查询分析器中使用Transact-SQL语句来创建。这里,采用第二种方法。数据库DB_Video的创建过程如下:

CREATE DATABASE DB_Video

USE DB_Video

这样,便创建了DB_Video数据库。然后,使用CREATE TABLE语句创建 DB_Video数据库中的会议信息表(tb_conference)和登录信息表(tb_login)。两个表的结构分别见表1和表2。

表1 会议信息表

表2 登录信息表

2.2 构建数据库框架

系统采用单文档/视图结构框架。设计步骤如下:

(1)打开 VC++.NET,依次选择菜单“file-new”,打开new窗口。选择“projects”选项卡。

(2)在new窗口中选择“MFC AppWizard(exe)”选项,在“project name”编辑框中输入项目名称“Video”,单击“OK”按钮进入MFC AppWizard-Step1窗口。

(3)选择“Single document”选项,表示创建的是单文档/视图结构应用程序,单击“Finish”按钮创建应用程序框架。

2.3 封装数据库

系统采用 ADO技术操作数据库,为了方便对数据库进行操作,程序对ADO进行了简单封装。过程如下:

(1)引入ADO类库。为了使用ADO技术,需要导入一个ADO动态链接库。具体过程为在项目的头文件“StdAfx.h”中添加代码“#import"c:program filesCommon filessystemadomsado.dll"

o_namespace ename("EOF","adoEOF")

Using namespaceADOBS;”

(2)封装ADO数据库对象。首先新建类CDataManage,在其头文件中为其添加成员,代码为:

_connection p_Con;

_RecordsetPtr p_Record;

_commandPtr p_Com;

然后为类 CDataManage添加成员函数 InitADO()和ConnectionDatabase(LPTSTR ConStr)。在类CDataManage中添加代码以下完成封装。

//析构函数

CDataManage::~ CDataManage()

{

if(p_Com!=NULL)

p_Com.Release();

if(p_Record!=NULL)

p_Record.Realse();

if(p_Con.Release();

}

//连接数据库

Bool CDataManage::ConnectionDatabase(LPTSTR ConStr)

{

try

{

if (p_Con->State==adStateOpen)

p_Con->Close();

p_Con->ConnectionString=ConStr;

p_Con->Open(_T(""),_T(""),_T(""),-1);

}

catch(_com_error&e)

{

AfxMessageBox(e.Description(),64,0);

return false;

}

return true;

}

//进行初始化

bool CDataManage::InitADO()

{

try

{

p_Con.CreateInstance(_uuidof(Connection));

p_Con.CreateInstance(_uuidof(Command));

p_Record.CreateInstance(_uuidof(Recordset));

}

catch()

{

return false;

}

return true;

}

2.4 视频采集

视频采集用于在程序中显示摄像头捕捉的信息。本系统采用Microsift公司的VFW数字视频软件包。VFW提供了VBX和AVICap窗口类的高级编程工具,可方便我们通过发送消息和设置属性来捕获、播放和编辑视频。运行效果如图1。

图1 视频会议管理系统

系统对视频的控制是通过类CCapture_Main实现的。在类 CCapture_Main中定义变量 m_display,通过调用变量m_dispaly的EnablePreviewVideo()方法进行视频采集。具体代码为:

void CMainFrame::OnSetDisplay()

{

m_showed=true;

CRect m_rectview;

this->GetClientRect(m_rect);

CWnd* tempview=m_splitter.GetPane(0,0);

tempview->GetClientRect(m_rectview);

m_display.EnablePreviewVideo(m_hWnd,

m_rectview.right+10,m_rect.top+60,

m_rect.right,m_rect.bottom);

}

2.5 视频录像

视频录像用于将摄像头捕捉到的信息以AVI格式保存到磁盘中。AVI文件格式是一种RIFF指定的应用程序,用来对音频/视频流进行捕捉。

视频录像是通过函数OnCapture()实现的。主要是通过其m_display对象的CaptureAVI方法进行录像。实现代码为:

void CMainFrame::OnCapture()

{

CString Filter;

CString Filename;

Filter="AVI Files(*.avi)︱*avi︱";CFileDialog FileDlg(FALSE, "avi",NULL,OFN_HIDEREADONLY︱OFN_OVERWRITEPROMPT,Filter,this);

if(FileDlg.DoModal()==IDOK)

{

Filename=FileDlg.GetPathName();

m_display.CaptureAVI(Filename,4.0,30,10);

}

}

2.6 会议记录

会议记录用于记录会议的主题、主持人、参加成员、时间等信息。

会议记录的功能是通过类CConference实现的。它通过函数InfoIsNull()判断用户输入的信息是否为空,若为空,返回 TRUE,否则返回 FALSE,然后使用 Connection对象的Execute方法执行SQL语句来保存信息到数据库中。部分代码为:

sql.Format("insert into tb_conference

values(‘%s’,%s’,‘%s’, %s’) ",c_sub,c_compere,c_member,c_time);

try

{

dataManage.p_Con->Execute((bstr_t)sql,NULL,adCmd Text);

AfxMessageBox("操作成功",MB_OK︱MB_ICONINFORMATION);

OnButtoncancel();

}

2.7 系统登录管理

系统登录的设计可以防止非法用户进入系统,从而增加系统的安全性。在系统启动时,首先显示登录窗口,要求用户输入登录信息,如果输入错误将禁止进入系统。系统登录是由类CLogin实现的。通过函数LoadOperators()加载用户信息,然后有函数 OnConfirm()检查用户信息是否存在,若不存在,则进行提示并返回;若存在,则以用户名和密码为条件从数据库中查询数据,若信息正确则登录成功,否则发生错误并提示重新输入用户名和密码。

3 总结

本系统利用VC++.NET开发,具有良好稳定的性能、友好的界面和可扩展性,对 Windows系统具有很好的支持。通过VFW和MFC实现对视频的提取,完成了视频的采集、分析与监测、编辑处理和存储。为企业的及时联系和决策处理提供了一个新的有效途径。目前,系统实现了对视频采集的简单操作,要完成更复杂的视频采集与分析,还有待进一步的研究。

[1]周绪,管丽娜,白海波.SQL Server 2000入门与提高[M].清华大学出版社.2002.

[2]谭浩强.C++程序设计[M].北京:清华大学出版社.2007.

[3]Kate Gregory著,蔡众众等译.Visual C++.NET编程详解[M].电子工业出版社.2003.

[4]张雨,阮伟良等.Visual C++工程应用与项目实践[M].机械工业出版.2005.

猜你喜欢

会议记录代码数据库
多载体形式会议记录归档与整理
创世代码
创世代码
创世代码
创世代码
数据库
数据库
数据库
数据库