用VB构建多媒体课件开发平台
2009-09-03姜达朱蔚
姜 达 朱 蔚
摘 要:随着现代教育的快速发展,多媒体CAI课件的运用日渐普及,各种课件制作技术也是争齐斗艳,各展其长。本文从实践出发,谈谈如何用VB6.0来构建一个强大便捷的多媒体课件平台,并介绍一些有关的编程技巧和关键技术。
关键词:VB;多媒体课件
1 课件开发工具的选择
目前流行的多媒体CAI课件制作软件主要有PowerPoint、Flash、Authware、Projectorh、方正奥思、VB、VB.net或其他编程语言等,另外还有用于网络教学的三分屏课件制作软件如课件快手等。以上软件各有优劣,但笔者经实践探索后认为,VB和VB.NET可以很方便地对我们常见的各种多媒体文件如语音、视频、动画、文本等进行控制,从而可以构建起一个强大的课件开发平台,然后我们再结合其它的多媒体制作技术如Flash等就可以制作出一个交互式很强的课件来。而在VB和VB.NET的选择上,考虑到目前我们使用的操作系统(一般为XP)均未预安装NetFramework1.1或2.0资源包,故笔者还是选择了大众化的VB6.0作为课件开发平台。
2 VB常见课件开发技术
2.1 声音的处理
对于一个好的课件来说,好的音乐或解说词是必不可少的。在多媒体课件中加入美妙的背景音乐、柔和的配音,适时的声音提示会让人赏心悦目,从而使学习者集中注意力,增强学习效果。我们在多媒体课件制作中用到的音频资料可以从光盘或网上收集得到,也可以通过windows的录音机或其它软件录制。下面是利用MCI控件实现声音的播放,其核心代码为:
Public Const mci_mode_close As Integer =524
Public Const mci_mode_play As Integer =526
Public Const mci_mode_pause As Integer =529
Private Sub sound_Click()
'如果声音正在播放则暂停或继续播放
If (Not MMControl1.Mode =mci_mode_pause)And(MMControl1.Mode=mci_mode_play) Then
MMControl1.Command= “pause”
Else
'播放解说词
MMControl1.DeviceType = “WaveAudio”
MMControl1.filename =“文件名.wav”
MMControl1.Shareable = False
MMControl1.UpdateInterval = 50
MMControl1.Notify = True
MMControl1.Command = “open”
MMControl1.Command = “prev”
MMControl1.Command = “play”
End If
End Sub
'如果解说已播放结束,则关闭媒体播放器
Private Sub MMControl1_Done(NotifyCode As Integer)
If MMControl1.Position = MMControl1.Length Then
MMControl1.Command = “close”
End If
End Sub
2.2 图片的控制
课件中的静态图片我们一般采用Photoshop制作。Jpg,Gif是课件选用的较多的图片格式。对于静态图片利用PictureBox控件,Image控件可以直接加载。而对于常用的Gif动画VB6.0中未提供标准控件,这时我们可以利用第三方提供的Gif控件,如AniGif(相应控件可在网上下载)。
2.3 Flash动画的控制
动画是由专门工具对原始材料进行修改、编辑和制作而形成的文件。从形式上讲,它是由一系列静态图象的连续播放。动画是多媒体技术的核心技术之一,在许多多媒体程序中扮演着直观演示、提示操作、讲述情节等功能。目前,在动画素材的制作中,大多采用Flash制作,Flash是具有优良矢量动画创作能力的专业软件,功能十分强大和独特。可采用VB自带ShockwaveFlash控件加载。VB和Flash动画之间的交互可以通过该控件的FSCommand 事件调用Flash动画中设置的参数来实现。
插入Flash动画,控制其播放的核心代码为:
'开始播放Flash动画
Private sub command1_click()
shockwaveFlash1.play
End sub
'停止播放Flash动画
Private sub command2_click()
shockwaveFlash1.stop
End sub
'移动到Flash动画的上一帧
Private sub command3_click()
shockwaveFlash1.FrameNum=shockwaveFlash1.FrameNum-1
End sub
'移动到Flash动画的下一帧
Private sub command4_click()
shockwaveFlash1.FrameNum=shockwaveFlash1.FrameNum+1
End sub
'控制Flash动画全屏播放
Private Sub Form_Load()
Form1.Height = Screen.Height
Form1.Width = Screen.Width
shockwaveFlash1.Width = Me.ScaleWidth
shockwaveFlash1.Height = Me.ScaleHeight
shockwaveFlash1.Left = 0
shockwaveFlash1.Top = 0
shockwaveFlash1.Movie = App.Path + “1.swf”
End Sub
VB与Flash交互的核心代码为:
Flash控制VB
假设我们在Flash中制作了一个按钮,并且在按钮的on事件中编写了以下代码:
On(release){
Fscommand(“name”);
}
在VB中用shockwaveflash控件加载这个Flash后,我们就可以在这个控件的Fscommand事件中编写以下代码来用上述Flash按钮来控制VB程序,核心代码如下:
Private Sub fladaohang_FSCommand(ByVal command As String, ByVal args As String)
If command=“name” then
'此处为VB语句
End if
End Sub
用VB控制Flash
主要是通过用VB调用Flash的ActionScript来实现,核心代码示例为:
Call ShockwaveFlash1.LoadMovie(0, CurDir + “/t.swf”)
2.4 视频的控制
视频是图象数据的一种,若干有联系的图象连续播放就形成了视频。视频文件(扩展名为AVI、MPG或MOV)可通过硬件(如视频采集卡)来捕获,也可以通过软件(如屏幕录象专家)来录制。通过VB提供的强大的多媒体控件,可以方便地在多媒体课件中实现视频文件的播放。
MCI(媒体控制接口)是Windows提供的功能强大的多媒体程序控制接口,VB是通过MMControl控件来调用MCI实现对媒体设备进行控制,而开发人员无需了解各种多媒体设备的具体硬件细节。下面通过VB的MMControl控件来设计一个不仅能实现常规控制而且能进行精确控制播放对象的播放器。其步骤和核心代码如下:
添加MMControl控件。MMControl控件不是VB的标准控件,必须先添加“Microsoft Multimedia Control 6.0”到工具箱中,才可在VB程序中使用。
在窗体中添加一个图片框“Picture1”,作为视频播放窗口。
在窗体中添加一个MMControl控件“MMControl1”,将MMControl的Visible属性设置为“False”;再添加七个命令按钮,并将它们的Caption属性设置为“前进”、 “播放”、 “暂停”、 “后退”、 “停止”、 “起点”、 “终点”,分别对应MMControl的七个功能。
编写代码
在Form_Load( )事件中进行初始化。
MMControl1.DeviceType = “AVIViedo”
MMControl1.hwndDisplay=Picture1.hwnd
MMControl1.FileName=app.path+“sample.avi”
MMControl1.Command=“open”
TxtFrom.Text=MMControl1.Start
TxtTo.Text=MMControl1.Length
UpDown1.Max= MMControl1.Length
UpDown2.Max= MMControl1.Length
对七个命令按钮的Click( )事件分别编写MCI动作命令。
“后退”按钮:MMControl1.Command = “back”
“暂停”按钮:MMControl1.Command = “pause”
“播放”按钮:MMControl1.From = Cint(TxtFrom.txt)
MMControl1.To = Cint(TxtTo.txt)
MMControl1.Command = “play”
“前进”按钮:MMControl1.Command = “step”
“停止”按钮:MMControl1.Command = “stop”
“起点”按钮:MMControl1.To = MMControl1.Start
MMControl1.Command=“seek”
“终点”按钮:MMControl1.To = MMControl1.Length
MMControl1.Command=“seek”
运行程序,观察播放效果
在VB中MMControl控件实现多媒体信息的演示是非常方便的,其实在VB中还提供了Windows Media Player 控件,使用它更加方便,调用的核心代码是:
加载影片:WindowsMediaPlayer1.Url=“视频地址”
播放影片:WindowsMediaPlayer1.Controls.Play
停止影片: WindowsMediaPlayer1.Controls.Stop
等等。
另外,我们还可以利用有关的API函数开发出更强大的多媒体控制软件来,这里就不作讨论了。
2.5 可执行程序的调用
有时候在多媒体课件制作中,需要调用外部的一些程序,如小游戏和Flash音乐等,主要是通过系统函数shell进行访问的,在VB程序中使用shell函数可方便的实现对EXE文件的访问。其核心代码为:Shell “外部可执行文件路径”,vbNormalFocus。
2.6 课件的打包与发布
一个课件开发完后需要打包发布,VB可以通过其自带的打包工具Package & Deployment Wizard或者其他打包工具进行打包,打包后生成Windows标准形式的安装程序包。
如果不希望打包而使程序能够直接运行,这时我们可以将打包后的DLL文件和EXE文件存放在同一个目录底下一起发布,相应的音乐、动画、游戏等文件也要一同附带上。而且还要提醒大家的是在程序中访问文件一定要采用相对路径的方式,否则程序脱离本机后将出现文件路径不正确的错误。
结束语
总之,在开发多媒体课件方面,用VB来构建一个多媒体开发平台,应用其丰富的控件对声音、图象、动画、视频等进行处理,无疑是一种方便且行之有效的方法。
参考文献
[1]李健,蒋芃.基于VB在CAI课件开发中的技术探讨[J].湖南广播电视大学学报,2003年01期.
[2]杨洪伟,宋平,宋晓强.现代教学中CAI课件应用分析 [J].农业网络信息,2006年12期.