王丽明
(长沙广播电视大学湖南长沙 410083)
摘 要:文章介绍了通用多媒体抢答系统(CMFAS)的功能特点及运行环境,在分析VB资源文件相关特性的基础上,阐明了资源文件的创建及调用方法,然后就CMFAS中用到的一些关键技术作了一些探讨。
关键词:Visual Basic;资源文件;多媒体;抢答系统
Research and Development of the Common Multi-media Forestalling-answer System Based on the Resource File of VB
WANG Liming,
(College of Information Science and Engineering ,Central South University,ChangSha,410083)
Abstract:This paper introduces the function characteristics and running environment of the common multi-media forestalling-answer system(CMFAS), and elucidates how to create and use resource file on the basis of analyzing the correlated characteristics of resource file,and then probes into the key techniques in CMFAS.
Key Words: Visual Basic;resource file;multi-media;the forestalling system
VB中的资源文件是一种可以同时存放文字、图片、声音等资源的文件。这种文件将字符串、位图、图标和数据等存放在一个扩展名为.res的文件中,它们不必在调用窗体或模块时全部加载,而是按需要从资源文件中加载。当需要增减或修改信息时,可在资源文件中进行,而不需要重新修改应用程序。利用这一特性,笔者在VB6.0中文企业版中开发了一套通用多媒体抢答系统(简称CMFAS),该系统将声音、图像、文字、动画等多种媒体结合在一起,在电大系统举办的各种知识抢答赛中多次应用该系统,取得了很好的效果。本文就该系统中的功能特点及实现中的一些关键技术做一些讨论。
1 系统的功能特点及运行环境
CMFAS是一个通用的多媒体抢答系统,它充分利用了VB语言的交互性及多媒体技术,为用户提供了一个图文俱备、声情并茂的抢答环境。
1.1 功能特点
1.1.1 以字幕形式播出竞赛内容,同时显示相应的图片,并播放配套的解说词或是优美的背景音乐,具有强烈的视觉效果和听觉效果,大大活跃了现场气氛。
1.1.2 在试题编辑器中快速编辑竞赛试题。可同时编辑文字、图片及声音资源。具有加载试题、保存试题、浏览试题、系统恢复等多种功能。
1.1.3 为各类知识抢答赛提供一个展示平台。可同时展示文字、图片及声音资源,为用户提供了一个图文俱备、声情并茂的抢答环境。具有出题、记分显示、现场解说、停电保护、动态显示、成绩揭晓、颁奖等多种功能。
1.1.4 由于开发者将竞赛内容中的文字、图片、声音等数据存放于资源文件中,用户使用时只需将竞赛内容进行整理,重编资源文件即可。因此,该系统适合于各种不同的知识抢答赛,具有很强的通用性。
1.2 模块结构图
本系统包括试题编辑器、知识抢答赛二部分,结构框图如图1所示。试题编辑器用于竞赛试题的加载、编辑、修改及存储;知识抢答赛用于设置参赛队名称、试题分值、动态显示竞赛内容、竞赛成绩等。
通用多媒体抢答系统 试题编辑器 赛前设置 知识抢答赛 分 值 设 置 选 手 设 置 系 统 恢 复 试 题 存 储 重 新 录 入 加 载 试 题 资 源 恢 复 成 绩 揭 晓 字 幕 显 示 记 分 牌
系统结构框图1
1.3 运行环境
CMFAS的硬件环境为Intel Pentium系列的586微机,64MB以上的内存,至少有100MB以上的空闲硬盘空间,具有声卡、音箱和投影仪。软件环境为Windows9X操作系统。
2 资源文件的创建及调用
建立资源文件应分三部分进行:先将需要用到的图片文件、声音文件、文本文件等资源存放到同一文件夹下,然后在记事本中根据资源的定义撰写以.rc为扩展名的原始资源文件,最后利用资源编译程序将原始资源文件编译成资源文件 (以 .res为扩展名 )。
2.1 原始资源文件的建立
在.rc原始资源文件中,文字资源撰写格式为:
STRINGTABLE
BEGIN
编号 1, "文字内容 1"
编号 2, "文字内容 2"
…
END
其中 :“编号 X”为数字,“文字内容 X”为任意的文字,如果一行写不下可以换行写,只要在双引号里面就可以,一定要注意,双引号和逗号只能是半角字符。
定义图片及声音资源的格式为:
资源名称 关键字 文件名称
其中,关键字可以是BITMAP、CURSOR、ICON、WAVE,它们的作用分别是定义位图(.bmp)、光标(.cur)、图标(.ico)、声音文件(.wav)。
2.2 将原始资源文件编译成资源文件
首先要确定路径“vb98\wizard”中的 wizard文件夹下面是否有资源编译程序 rc.exe,如果没有,就到 VB安装盘下面查找,连同rcdll.dll文件一同复制原始资源文件resource.rc所在的文件夹下,然后在 MS-DOS状态下执行:
rc resource.rc
于是在原始资源文件resource.rc所在目录下产生了资源文件resource.res。至止,资源文件已经产生。
2.3 在VB工程中应用资源文件
在VB工程中,通过菜单“工程”中的“添加文件”,即可将前面的资源文件添加到工程中去,这时你会发现工程资源管理窗口多了一项“相关文档”,在它下面有你刚添加的资源文件,需注意,一个工程里面只能添加一个资源文件。下面分步说明如何使用资源文件中的资源。
为了调用资源文件中的资源,必需使用VB提供的资源函数:LoadResString ()、LoadResPicture ()、LoadResData ()。
LoadResString ()函数用于调入字符串资源,其使用格式为:
LoadResString (资源文字编号)
LoadResPicture ()函数用于调入位图、图标和光标资源,其使用格式为:
LoadResPicture (资源名称,图片类型 )
图片类型可为VBResBitmap、VBResIcon、VBResCursor,分别对应着位图 (BITMAP)、图标 (ICON)和光标 (CURSOR)三种资源。。
LoadResData ( )函数用于调入各种资源,如声音资源等,该函数以Byte数组形式返回指定资源,其使用格式为:
LoadResData (资源名称,资源类型)
以下是调用资源文件中的资源的几个实例:
LblDemonstrate.Caption = LoadResString(1000)
Form1.Picture = LoadResPicture(1000, VBResBitmap)
Form1.Icon = LoadResPicture("FormIco", VBResIcon)
Form1.MouseIcon = LoadResPicture("MouseIco", VBResCursor)
3 系统开发中的关键技术
3.1 文字、图片及声音的同步播放技术
针对每一道题,事先设计好相应的图片并录制好配套的解说词或是一段优美的音乐存放到资源文件中,在编制原始资源文件时,将文字、图片、声音三者的资源名称都设置成同一名称,以便在应用程序中同时调用。此时应注意声音资源的调用与图片资源的调用有区别,需要调用API函数sndPlaySound()才能播出声音。以下是实际应用的例子:
Private Declare Function sndPlaySoundX Lib "winmm.dll" Alias "sndPlaySoundA" (lpszSoundName As Any, ByVal uFlags As Long) As Long
……
lblDemonstrate.Caption = LoadResString(num1) ‘显示试题内容
Image1.Picture = LoadResPicture(num1, 0) ‘显示图片
Arr = LoadResData(num1, "WAVE")
If Arr(0) <> 0 Then
sndPlaySoundX Arr(0), &H4& Or &H1& ‘播放声音
cmdCloseVoice.Caption = "关闭音乐"
Else
cmdCloseVoice.Caption = "无声音"
cmdCloseVoice.Enabled = False
End If
……
3.2 即时存盘技术
在试题编辑器中,为了防止因突然停电而造成的数据丢失,先设计一个时钟控件,将其Interval属性设置成1000(时间间隔为1秒),然后在编辑试题时将其Enabled属性设置成True,定义一个静态变量TimeNum进行计数,每间隔5分钟自动存盘一次。代码如下:
Private Sub Timer1_Timer()
Static TimeNum As Integer
TimeNum = TimeNum + 1
If TimeNum = 300 Then
TimeNum = 0
cmdSave.Value = True ‘存盘命令
End If
End Sub
3.3 图形文件的仿真调用技术
综合利用PictureBox控件的AutoSize属性和Image控件的Stretch属性可以实现图形文件的自由缩放,很好地解决图形文件的仿真调用问题。主要设计思想是:首先在窗体上设置一个名为picSource的PictureBox控件,利用CommonDialog控件调用原图,计算出原图的高宽比,并将picSource的visible属性设置为false,使其隐藏起来;然后再设置另一个名为picShow的PictureBox控件固定图片的显示位置,将此控件作为容器,在此容器中设置一名为imgPicture的Image控件,确定Image控件的高度为容器的高度,宽度则为按上述高宽比计算出的高度,同时设置Image控件的Stretch属性为true;最后设置Image控件的picture属性等于picSource的picture属性,这样图形文件就可以仿真地显示出来。
4 使用CMFAS时应注意的问题
4.1、声音资源必须是.wav文件,若是其它格式的声音文件,用户应事先利用转换工具转换成.wav文件才能使用。此外,所编辑的声音资源应尽量与相应的试题有一定的联系,可以是背景音乐,也可以是相应的试题解说词。
4.2、编辑封面时,最好选择与相应的竞赛有内在联系的图片和背景音乐。所选图片尺寸(宽×高)为29.5×22.5cm,以便能够全屏显示。尺寸不符,应事先利用图片编辑工具进行调整。
4.3、试题编辑好之后,应将其保存在磁盘上,扩展名必须为.res。
5 结束语
本系统运用了面向对象的程序设计技术,较好地保证了系统的有效性、通用性和开放性,同时使系统有较好的容错性和可移植性,缩短了开发周期。目前,该系统已经在大、中、小学校以及企、事业单位主办的各类知识抢答赛中投入使用。实际应用证明,该系统易学易用,具有很强的通用性,大大活跃了知识抢答赛的现场气氛,具有较好的实用和推广价值。
参考文献:
<1> 张永才,韩晓东 VB中使用资源文件的编程方法<J> 信息技术,2000,(5):16_17.
<2> 张晓武.多媒体程序设计方法与技巧.中国计算机用户,1996(23)2.
<3> 许久江,佟振江.利用VB的图像的显示效果.计算机世界,1997(4).
<4> (美)StevenHolzner.VisualBasic6技术内幕.机械工业出版社.
联系地址:长沙市浏正街59号长沙广播电视大学
邮政编码:410005
E-mail:wlmtn@163.com wlm_tn@sina.com.cn
联系电话:13973153635
电脑抢答器网 抢答器设计与制作的专业网站 大学生课程设计的园地 |