http://www.wenyuan.com.cn/webnew/
第 10章 Visual Basic多媒体程序设计
(时间,3次课,6学时)
http://www.wenyuan.com.cn/webnew/
教学提示,本章学习应该注意 Visual Basic中如何使用多媒体元素,尤其注意 Visual Basic中控件的概念,因为许多功能的实现都要依赖控件来实现 。
教学目标,通过本章的学习,用户应掌握有关 Visual
Basic的特点及一般程序的设计过程,还要掌握如何在
Visual Basic中使用图像,动画,音频以及视频文件 。
第 10章 Visual Basic多媒体程序设计
http://www.wenyuan.com.cn/webnew/
第 10章 Visual Basic多媒体程序设计
10.1 Visual Basic简介
10.2 与多媒体有关的控件
10.3 在 Visual Basic程序中使用图像
10.4 在 Visual Basic程序中使用动画
10.5 在 Visual Basic程序中使用声音
10.6 在 Visual Basic程序中使用视频
10.7 在 Visual Basic程序中调用电子幻灯片
10.8 其他实例
10.9 上机指导
10.10 习题
http://www.wenyuan.com.cn/webnew/
10.1 Visual Basic简介
10.1.1 Visual Basic基本特点
10.1.2 Visual Basic设计界面
10.1.3 用 Visual Basic开发应用程序
http://www.wenyuan.com.cn/webnew/
10.1.1 Visual Basic基本特点
Visual Basic由 Basic语言发展而来,是高级程序设计语言。,Visual”是指可视化的图形用户界面 (GUI)。
Visual Basic是对 Basic语言的扩充,既保留了 Basic
语言简单易用的优点,又充分利用了 Windows的图形环境,提供了崭新的可视化设计工具。
http://www.wenyuan.com.cn/webnew/
10.1.2 Visual Basic设计界面
启动 Visual Basic 6.0时,首先可以看到 【 新建工程 】
对话框。
根据需要选择一种开始方式,通常选择“标准,EXE”
方式,单击 【 打开 】 按钮,即可进入 Visual Basic集成开发环境,其基本界面。
Visual Basic 6.0集成开发环境 (IDE)主要由菜单条、
工具栏、工具箱、窗体设计器、工程管理器和属性窗口等部分组成。
http://www.wenyuan.com.cn/webnew/
10.1.3 用 Visual Basic开发应用程序
1,创建应用程序的主要步骤
(1) 创建应用程序界面
(2) 设置界面上各个对象的属性
(3) 编写对象响应的程序代码
(4) 保存工程
(5) 运行和调试程序
(6) 生成可执行程序
http://www.wenyuan.com.cn/webnew/
10.1.3 用 Visual Basic开发应用程序
2,程序打包
为了保存和安装方便,Visual Basic语言提供了程序打包功能。当 Visual Basic源程序编制完成后,应编译可执行的,exe文件,并制作安装文件 setup.exe。
安装文件把程序中用到的,dll文件,.vbx文件,.ocx文件等压缩到硬盘指定的文件夹中,这个过程称为“程序打包”。打包后的程序可记录在 CD-R或 CD-RW光盘上。需要使用时,可以运行光盘上的,setup.exe”
安装文件,Visual Basic程序以及相关的文件就可以自动装入硬盘中。
http://www.wenyuan.com.cn/webnew/
10.2 与多媒体有关的控件
10.2.1 Visual Basic的控件简介
10.2.2 Animation控件和 Multimedia控件
10.2.3 Animation控件的使用
http://www.wenyuan.com.cn/webnew/
10.2.1 Visual Basic的控件简介
Visual Basic的控件可以分为内部控件,ActiveX控件和可插入控件 3类。内部控件是 Visual Basic本身提供的控件,这些控件显示在控件箱中。 ActiveX控件是
Visual Basic控件箱的扩充部分,这些控件在使用前必须添加到工具箱内,可插入控件是由其他应用程序创建的对象。利用可插入对象,可以在 Visual Basic
应用程序中使用其他应用程序的对象。
http://www.wenyuan.com.cn/webnew/
10.2.2 Animation控件和 Multimedia控件
与多媒体有关的控件主要有 Animation和 Multimedia控件 。
1,Animation控件
Animation控件用于播放简单的动画,有声音的,avi文件不能在 Animation控件中使用,如果试图装载这样的文件将会产生错误。该控件是 Active X控件,并不是 Visual Basic
标准,exe格式的控件,因此要想使用它,应该通过单击 【
工程 】 |【 部件 】 (Project→Components) 命令添加
Microsoft Windows Common Controls-2 6.0控件,或直接建立,VB专业版”控件或,VB企业版”控件。添加
Animation 控件后的控件箱如图 10.3所示。
图 10.3
http://www.wenyuan.com.cn/webnew/
10.2.2 Animation控件和
Multimedia控件
2,Multimedia控件
Multimedia控件是一组按钮,用来向声卡,MIDI
序列发生器,CD-ROM驱动器、视频 CD播放器和视频磁带记录器等设备发出 MCI命令。 MCI设备还支持 Windows视频文件的回放。
http://www.wenyuan.com.cn/webnew/
10.2.3 Animation控件的使用
Animation控件和 Multimedia控件都是开发多媒体应用程序时经常使用的两个控件,而在播放音频、视频文件时较多使用 Multimedia控件,这里先介绍 Animation控件的简单使用,对于 Multimedia控件,将在以后的几节中详细介绍其使用方法。下面先介绍使用 Animation控件播放,avi文件实现类似 Windows中文件删除应用程序的例子。
新建一个工程,在窗体中添加两个按钮,Command1和
Command2,将其属性设置为 【 开始 】 和 【 停止 】,分别用于开始和停止播放。再添加一个 Animation控件
(Animation1)和一个标签控件 Label1,其属性设置为 【 删除文件 】 。
http://www.wenyuan.com.cn/webnew/
10.3 在 Visual Basic程序中使用图像
10.3.1 直接粘贴图像
10.3.2 图像与动画组合
http://www.wenyuan.com.cn/webnew/
10.3.1 直接粘贴图像
1,处理图像
在多媒体产品中,通常在保证显示质量的前提下,对图像进行预处理。预处理的内容包括:降低图像的颜色深度、统一画面尺寸、统一分辨率和文件格式。
2,使用图像
在界面上直接粘贴图像是最简单的图像使用形式。但是,通常为了灵活使用图像,不直接粘贴图像本身,
而只粘贴与图像大小相等的空白区域。该区域使用
Image工具创建,图像的调入在程序中进行。
http://www.wenyuan.com.cn/webnew/
10.3.2 图像与动画组合
初学者往往把整幅画面制作成动画,不仅数量大,而且程序的动作速度慢。实际上,真正活动的对象只是其中的一小部分,可以在图像中把动画的那一小部分截取下来,作为小动画的背景。利用动画制作软件,
在截取的背景上制作动画。然后,在 Visual Basic中
,选择 Image工具调入图像,使用 Animation控件调入动画。仔细调整动画在图像上的位置,使动画恰好位于截取背景的那个区域。
http://www.wenyuan.com.cn/webnew/
10.4 在 Visual Basic程序中使用动画
10.4.1 实现动画的几种方法
10.4.2 在 Visual Basic中制作动画
10.4.3 几种不同格式动画的播放
http://www.wenyuan.com.cn/webnew/
10.4.1 实现动画的几种方法
1,制作动画的几种方法
利用定时器控件,其实质是每隔一段时间间隔移动一次图形或每隔一段时间间隔重新绘制图形。
交替显示一组图片,一般是两幅或三幅图片,从而实现交替的动画效果。
利用 PictureClip等控件,连续播放一系列图片,从而形成动画。
2,动画控件与函数
在 Visual Basic中,可以使用以下几种方法来播放动画:
使用 MCI控件播放动画使用 API函数播放动画使外挂控件播放动画
http://www.wenyuan.com.cn/webnew/
10.4.2 在 Visual Basic中制作动画
1,用定时器控件实现动画
本例用 Line控件做成指针式电子钟的 3个指针,并固定这些指针的一端,另一端的坐标随时间变化,这就形成了一个钟表。
2,用 PictureClip控件制作动画
利用 PictureClip控件制作动画,实质上就是把存放在
PictureClip控件中的“地球图集,bmp”图片逐个放到图片框中。图 10.7所示为“地球图集,bmp”图片的内容
。
图 10.7
http://www.wenyuan.com.cn/webnew/
10.4.3 几种不同格式动画的播放
动画的格式有 SWF,GIF等,不同格式的动画需要不同的插件,使用不同的方法进行播放。
1,通过,Shockwave Flash”控件和,Microsoft Common
Dialog Control 6.0”控件播放 Flash动画,
(1) 用 Visual Basic新建一个工程。
(2) 在工具箱中右击,在打开的菜单中选择 【 部件 】 选项,
在 【 部件 】 对话框中选中 Shockwave Flash控件和
Microsoft Common Dialo g Control 6.0控件。
(3) 在窗体上创建一个 Flash 控件,命名为 skFlash,并创建一个,Common Dialog Control”控件,命名为,CmdDlg”
,用于打开文件。另外还要添加 4个命令按钮,分别命名为 cmdPlay,cmdStop,cmdRewind,cmdOpen。
(4) 设置对象属性,如表 10.3所示。
http://www.wenyuan.com.cn/webnew/
10.4.3 几种不同格式动画的播放表 10.3
(5) 在代码窗口中输入以下代码:
Private Sub Form_Load()
CmdDlg.Filter = "*.swf" '设置过滤器,专门打开 Flash动画
(swf格式 )
End Sub
Private Sub cmdOpen_Click()
CmdDlg.ShowOpen '打开按钮代码
skFlash.Movie = CmdDlg.FileName
End Sub
http://www.wenyuan.com.cn/webnew/
10.4.3 几种不同格式动画的播放
Private Sub cmdPlay_Click()
skFlash.Play '播放按钮代码
End Sub
Private Sub cmdRewind_Click()
skFlash.Rewind '重头播放按钮代码
skFlash.Play
End Sub
Private Sub cmdStop_Click()
skFlash.Stop?停止按钮代码 图 10.8
End Sub
(6) 运行程序。程序运行画面如图 10.8所示。
http://www.wenyuan.com.cn/webnew/
10.4.3 几种不同格式动画的播放
2,使用 WebBrowser控件播放 GIF动画
(1) 由于 WebBrowser控件并不是 Visual Basic的基本控件,因此在使用该控件之前必须先将其装入工具箱中。装入方法为:
在工具箱中单击鼠标右键,选择 【 部件 】 选项,选中
Microsoft Internet Controls复选框,然后单击 【 确定 】 按钮即可。
(2) 选取 WebBrowser控件 (注意,不同版本 IE的 WebBrowser控件的图标是不同的,IE 4.0及以上版本中的 WebBrowser控件的图标是一个地球; IE 3.0是一个搜索图标 ),添加到窗体的相应位置上。
(3) 设计相应代码,通过使用 WebBrowser控件的 Navigate方法播放 GIF动画文件。
3,播放 FLC格式动画
播放,flc 动画文件的方法与,wav 和,midi 并没有不同,在此不再详细介绍。
http://www.wenyuan.com.cn/webnew/
10.5 在 Visual Basic程序中使用声音
10.5.1 Windows高级音频函数
10.5.2 多媒体 MCI控件
10.5.3 利用 OLE控件播放 WAV声音文件
10.5.4 利用 API函数播放 WAV声音文件
http://www.wenyuan.com.cn/webnew/
10.5.1 Windows高级音频函数
采用 Windows提供的高级音频函数可以播放声音,
常用于简单声音,例如报警声、简短的语音提示和标志性音乐片段等。 播放声音的高级音频函数有:
MessageBeep函数,主要用于启动计算机内扬声器播放报警音响。
SndPlaySound函数,主要用于播放器数据量小于
100KB的波形音频文件。
PlaySound函数,主要在 32b的应用程序中播放波形音频文件。
上述 3种函数的作用是促使计算机内扬声器发声,
不需要使用 MCI设备。另外不支持 MIDI音频信号的播放。
http://www.wenyuan.com.cn/webnew/
10.5.2 多媒体 MCI控件
1,使用播放控制按钮播放声音
当在窗体上添加了播放控制按钮后,属性栏中的 Name
项自动定义为 MMControl1。播放控制按钮包括播放、
停止、暂停、录音等 9个按钮,可以根据实际需要决定在界面上显示的按钮。
2,使用程序播放声音
在制作多媒体产品时,一般不在界面上使用声音控制按钮,而是通过程序对声音进行灵活的控制,操作的具体方法和使用播放控制器播放声音类似,只有两点不同:
① 首先把声音按钮的 Visible属性设置为 False,使其不可见。
② 在程序中安排控制命令,实现对声音的控制。
http://www.wenyuan.com.cn/webnew/
10.5.3 利用 OLE控件播放 WAV声音文件
建立一个窗体,用鼠标选择 OLE控件,在窗体上拖出
OLE区域,打开如图 10.11所示的窗口。在该窗口中选择新建对象的类型,然后单击 【 确定 】 按钮完成在窗口中添加 OLE控件的操作。添加 OLE控件后的窗体。
这样就可以在 OLE控件的 ResourceDoc属性中选择所要播放的文件。要运行程序只需双击 OLE控件即可。
http://www.wenyuan.com.cn/webnew/
10.5.4 利用 API函数播放 WAV声音文件
在窗体的 DECLARATIONS(声明 )区域中输入如下代码:
Private Declare Function sndPlaySound Lib
"winmm.dll" Alias "sndPlaySoundA" (ByVal
lpszSoundName As String,ByVal uFlags As Long)
As Long
′lpszSoundName是一个字符串变量,表示一个
WAV格式的文件名。
′uFlags 用于设定播放状态的各种选项。参数值为
0X00时,实现同步播放,参数值为 0X01时实现非同步播放。
http://www.wenyuan.com.cn/webnew/
10.5.4 利用 API函数播放 WAV声音文件
在命令按钮的单击事件中输入如下代码:
Private Sub Command1_Click()
Dim plays As Long
plays = sndPlaySound("G:\调节音量 \21秒音乐
.WAV",&H0)
End Sub
运行时单击命令按钮即可播放 WAV文件。
http://www.wenyuan.com.cn/webnew/
10.6 在 Visual Basic程序中使用视频
10.6.1 视频信号处理
10.6.2 多媒体 MCI控件
10.6.3 使用 OLE控件播放视频文件
http://www.wenyuan.com.cn/webnew/
10.6.1 视频信号处理
视频信号的处理原则是:
尽量截取重要内容,省略多余部分,以便减少数据量。
采用 AVI文件格式保存视频信号。
充分考虑多媒体产品存储介质的容量,确定使用视频文件的数量。
http://www.wenyuan.com.cn/webnew/
10.6.2 多媒体 MCI控件
在 Visual Basic语言中,使用 MCI控件播放视频文件可以通过定义播放区域播放,也可以不定义播放区域,系统会自动打开一个播放窗口进行播放。
1,不定义播放区域
具体操作步骤如下:
(1)通过菜单在工具箱中添加 MMC控件。
(2)设置对象属性:将表单保持自动命名,将其
Caption属性修改为 【 播放视频 】 。
(3)输入程序。
(4)运行程序,存盘后运行程序,出现视频影片,单击播放按钮,开始播放影片。
http://www.wenyuan.com.cn/webnew/
10.6.2 多媒体 MCI控件
2,定义播放区域
具体步骤如下:
(1)通过菜单在工具箱中添加 MMC控件。
(2)建立视频播放对象 ——首先利用工具箱中的
MMControl工具建立一个播放视频信号的对象。该对象被自动命名为,MMControl”。
(3)使用工具箱中的 PictureBox工具,建立一个播放视频信号的区域,该区域被自动命名为 Picturel。
(4)编写程序。程序中主要包括以下几个部分:
① 控制按钮处理 —— 建立对象后,产生一组控制按钮,按钮的个数和功能与播放声音时相同。如果希望隐藏按钮,则在程序中定义包括“播放”在内的多种控制功能,并应把各按钮的 Visible属性设置成
False。
http://www.wenyuan.com.cn/webnew/
10.6.2 多媒体 MCI控件
② 定义视频播放 —— 用 MMContuol1.Device="AVIVideo"
语句把播放类型定义为视频信号,该语句非常重要,否则
MCI控件无法播放视频信号。
③ 指定播放文件 —— 用 MMControl1.filename="路径文件名 "语句指定文件路径和名字。
④ 定义视频播放区域 ——用
MMControl1.hWndDisplay=picture1.hWnd语句将 Picture1
区域定义在播放视频信号的区域。
⑤ 控制视频文件 ——可使用
MMControl1.Command="Open"语句打开视频文件,至于播放或其他控制可使用 MMControl1.Command="命令参数
"语句发出播放或其他命令。
http://www.wenyuan.com.cn/webnew/
10.6.3 使用 OLE控件播放视频文件
使用 OLE控件播放 AVI格式的视频文件时,将自动打开一个播放窗口播放视频信号。
首先用 OLE工具创建一个矩形。在随后显示的 Insert
Object画面中,选中 【 建立文件关联 】 复选框,再单击 Browse按钮,找到需要运行的视频文件。选中
【 链接 】 和 【 显示为图标 】 两个复选框,使其有效
。最后单击 OK按钮,在窗口中将出现 OLE图标和视频文件名。
http://www.wenyuan.com.cn/webnew/
10.7 在 Visual Basic程序中调用电子幻灯片
10.7.1 电子幻灯片
10.7.2 建立连接
http://www.wenyuan.com.cn/webnew/
10.7.1 电子幻灯片
1.文件格式
通常,电子幻灯片的默认保存类型是“演示文稿”,
文件扩展名为,.ppt”。如果用鼠标双击该文件,则启动 PowerPoint软件,自动进入幻灯片的编辑状态。为了和 Visual Basic多媒体程序相链接,电子幻灯片的保存类型应改为,PowerPoint放映”方式,对应的文件扩展名是,.pps”。用鼠标双击该格式文件时,不进入 PowerPoint编辑状态,而是直接进行演示。
2.存放位置
电子幻灯片的存放地点应相对固定在硬盘的某个逻辑区中,文件夹和文件名也不应变更,否则 Visual
Basic多媒体程序将找不到电子幻灯片文件。
http://www.wenyuan.com.cn/webnew/
10.7.2 建立连接
1,建立方法
建立连接的具体操作步骤如下:
(1)选择工具箱中的 OLE工具,在窗口界面上画一个矩形,随后显示插入对象画面。
(2)在画面中,选择 【 由文件创建 】 单选按钮,然后单击 Browse按钮,找到一个电子幻灯片文件。再选择 【 链接 】 和 【 显示为图标 】 两个复选框,使其有效。最后单击 OK按钮。在窗口界面上随之出现 OLE
图标和对应的电子幻灯片文件名。
(3)运行程序时,用鼠标双击 OLE图标即可启动对应的电子幻灯片文件,并进入演示状态。在电子幻灯片演示结束或者按 Esc键后,返回程序状态。
http://www.wenyuan.com.cn/webnew/
10.8 其他实例
10.8.1 调节音量
10.8.2 用 Visual Basic设计 VCD播放器
10.8.3 只播放一帧
http://www.wenyuan.com.cn/webnew/
10.8.1 调节音量
本例通过 API调用来实现对扬声器音量的控制。 具体操作步骤如下:
(1) 单击 【 文件 】 |【 新建工程 】 命令,创建一个新工程。
(2) 在窗体上添加 8个命令控件和一个标签控件,整体布局如图 10.18所示。
图 10.18
http://www.wenyuan.com.cn/webnew/
10.8.1 调节音量
(3) 设置对象属性,将 Form1的 Caption属性改为 【 调节音量 】 ; Command1至 Command8的 Caption属性分别设置为 【 静 】,【 左 】,【 右 】,【 双 】,【 +】,
【 -】,【 恢复 】,【 退出 】 ; Label1的 Caption属性设置为空白。
(4) 编写事件处理程序。
双击窗体,打开代码窗口,输入以下程序:
Private Declare Function sndPlaySound Lib "winmm.dll"
Alias "sndPlaySoundA" (ByVal lpszSoundName As
String,ByVal uFlags As Long) As Long
Private Declare Function waveOutGetVolume Lib
"winmm.dll" (ByVal uDeviceID As Long,lpdwVolume
As Long) As Long
http://www.wenyuan.com.cn/webnew/
10.8.1 调节音量
Private Declare Function waveOutSetVolume Lib
"winmm.dll" (ByVal uDeviceID As Long,ByVal
dwVolume As Long) As Long
Dim savVol
Private Sub Command1_Click()
i = waveOutSetVolume(0,0)
End Sub
Private Sub Command2_Click()
i = waveOutSetVolume(0,&HFF00)
End Sub
Private Sub Command3_Click()
i = waveOutSetVolume(0,&HFF)
End Sub
http://www.wenyuan.com.cn/webnew/
10.8.1 调节音量
Private Sub Command4_Click()
i = waveOutSetVolume(0,&HFFFF)
End Sub
Private Sub Command5_Click()
x = waveOutGetVolume(0,0) - &H808
i = waveOutSetVolume(0,x)
End Sub
Private Sub Command6_Click()
x = waveOutGetVolume(0,0) + &H808
i = waveOutSetVolume(0,x)
End Sub
Private Sub Command7_Click()
i = waveOutSetVolume(0,savVol)
End Sub
http://www.wenyuan.com.cn/webnew/
10.8.1 调节音量
Private Sub Command8_Click()
End
End Sub
Private Sub Form_Load()
Me.Show
savVol = &H4F4F
i = waveOutSetVolume(0,savVol)
k = App.Path + "\21秒音乐,wav"
Label1.Caption = "音乐文件名," + k
l = &H1 Or &H2
i = sndPlaySound(k,l)
End Sub
http://www.wenyuan.com.cn/webnew/
10.8.2 用 Visual Basic设计 VCD播放器具体操作步骤如下:
(1) 在 Visual Basic中建立一个新窗口,加入多媒体部件 Microsoft
Multimedia Control 6.0以及对话框部件 Microsoft Common
Dialog Control 6.0。
(2) 在窗体中添加 MCI 控件并调整其大小,并将窗体的大小也调整为与其同样大小。
(3) 设置对象属性。
将 9个按钮 (从左至右为,Prev,Next,Play,Pause、
Back,Step,Stop,Record 和 Eject)中的 Record 按钮的
Visible 属性设为 False,其余按钮的 Visible 属性和
Enabled 属性设为 True,以上按钮的设置可通过 MMControl
属性栏内的 【 自定义 】 选项来设置。对话框控件的
DefaultExt属性设为,.DAT”,DialogTitle 属性设为 【 打开多媒体文件 】,Filter 属性设为,*.DAT,*.WAV”,InitDir 属性设为,G:\MPEGAV”(假设光驱盘符为 G)。
http://www.wenyuan.com.cn/webnew/
10.8.2 用 Visual Basic设计 VCD播放器
(4) 编写代码。
在代码窗口中输入如下程序,
Option Explicit
Private Sub Form_Load()
Dim Response As Integer
MMControl1.DeviceType = "MPEGVideo"
CommonDialog1.ShowOpen ′通过对话框选择不同的 VCD文件
MMControl1.filename =
CommonDialog1.filename ′选定要播放的文件
MMControl1.Command = "Open"
MMControl1.Command = "Play"
End Sub
http://www.wenyuan.com.cn/webnew/
10.8.2 用 Visual Basic设计 VCD播放器
Private Sub Form_Unload(Cancel As Integer)
MMControl1.Command = "close"
End Sub
Private Sub MMControl1_BackClick(Cancel
As Integer) ′对 Back按钮的功能改进
Dim i As Integer
i = MMControl1.Position - 100 ′数值 100为后退量,可适当调整
If i < 0 Then
MMControl1.From="0"
http://www.wenyuan.com.cn/webnew/
10.8.2 用 Visual Basic设计 VCD播放器
Else
MMControl1.From="i"
End If
MMControl1.Command="Play"
End Sub
Private Sub MMControl1_StepClick(Cancel
As Integer) ′对 Step按钮的功能改进
Dim j As Integer
j="MMControl1.Position" + 100 ′数值 100为前进量,可适当调整
If j> MMControl1.Length Then
MMControl1.From = MMControl1.Length
http://www.wenyuan.com.cn/webnew/
10.8.2 用 Visual Basic设计 VCD播放器
Else
MMControl1.From = j
End If
MMControl1.Command = "Play"
End Sub
调整好窗体的标题、图标、颜色等,然后编译成,EXE文件,就可以在 Windows下拥有自己的 VCD播放器了。
http://www.wenyuan.com.cn/webnew/
10.8.3 只播放一帧
利用 PictureClip控件可以实现观看动画中任意一帧的功能。具体操作如下:
(1) 新建一个工程。
(2) 在窗体上创建一个命令按钮控件、一个水平滚动条控件、一个标签控件、一个图片框控件和一个 PictureClip控件,窗体布局如图 10.19所示。
(3) 设置对象属性,如表 10.4所示。
http://www.wenyuan.com.cn/webnew/
10.8.3 只播放一帧图 10.19
http://www.wenyuan.com.cn/webnew/
10.8.3 只播放一帧表 10.4
http://www.wenyuan.com.cn/webnew/
10.8.3 只播放一帧
(4) 编写事件处理程序。
在代码窗口中输入以下程序:
Private Sub Command1_Click()
End
End Sub
Private Sub Form_Load()
Picture1.ScaleMode = 3
PictureClip1.Rows = 3
PictureClip1.Cols = 5
Picture1.Picture =
PictureClip1.GraphicCell(0)
End Sub
http://www.wenyuan.com.cn/webnew/
10.8.3 只播放一帧
Private Sub HScroll1_Change()
Picture1.Picture =
PictureClip1.GraphicCell(HScroll1.Value)
Label1.Caption = "第 " +
Format(HScroll1.Value,"00") + " 帧 "
End Sub
Private Sub HScroll1_Scroll()
Picture1.Picture =
PictureClip1.GraphicCell(HScroll1.Value)
Label1.Caption = "第 " +
Format(HScroll1.Value,"00") + " 帧 "
End Sub
http://www.wenyuan.com.cn/webnew/
10.8.3 只播放一帧
(5) 运行程序。
将文件存盘后运行。当拖动滑块时动画当前帧立即更换,如图 10.20就是其中的一个画面。
图 10.20
http://www.wenyuan.com.cn/webnew/
10.9 上机指导
10.9.1 播放 CD
10.9.2 调节音量
http://www.wenyuan.com.cn/webnew/
10.9.1 播放 CD
设计 CD播放器的具体操作如下:
(1)单击 【 文件 】 |【 新建工程 】 命令,创建一个新工程。
(2)在窗体上创建 16个命令按钮控件和一个标签控件。
(3)设置对象的属性,前 15个命令按钮的
name都是 Command1,各按钮靠 Index属性来区别。
(4)编写事件处理程序。在代码窗口中添加以下程序:
http://www.wenyuan.com.cn/webnew/
10.9.1 播放 CD
Option Explicit
Private Sub Command1_Click(Index As
Integer)
playCD (Index + 1)
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Dim i As Integer
i = auxTest()
If i <> True Then
http://www.wenyuan.com.cn/webnew/
10.9.1 播放 CD
MsgBox "对不起,没有检测到声卡,有可能不能欣赏 CD"
End If
End Sub
(5)单击 【 工程 】 |【 添加模块 】 命令,在项目窗口中添加一个模块图标。双击该模块图标,打开模块代码窗口,输入以下程序:
Declare Function mciSendString Lib
"winmm.dll" Alias "mciSendStringA" (ByVal
lpstrCommand As String,ByVal
lpstrReturnString As String,ByVal
uReturnLength As Long,ByVal hwndCallback
As Long) As Long
http://www.wenyuan.com.cn/webnew/
10.9.1 播放 CD
Declare Function auxGetNumDevs Lib
"winmm.dll" () As Long
Global Const SND_ASYNC = &H1
Global Const SND_NODEFAULT = &H2
Global Const SND_LOOP = &H8
Global Const SND_NOSTOP = &H10
Function auxTest() As Boolean
Dim i As Integer
i = auxGetNumDevs()
If i > 0 Then
auxTest = True
Else
auxTest = False
End If
End Function
http://www.wenyuan.com.cn/webnew/
10.9.1 播放 CD
Sub playCD(b As Integer)
Dim a As Long
a = mciSendString("open cdaudio alias
cd wait",0&,0,0)
a = mciSendString("set cd time format
tmsf",0&,0,0)
a = mciSendString("play cd from" &
Str(b),0&,0,0)
End Sub
(6)运行程序,以“播放 CD”为名存盘后运行程序,出现图 10.21所示的界面,在光驱中放入一张 CD音乐光盘,然后选择一首曲子开始播放。
http://www.wenyuan.com.cn/webnew/
10.9.2 调节音量
在用 Visual Basic编程的时候,通常要调用图片,如果图片出现的时候是以各种完美的效果出现的 (如马赛克效果,百叶窗效果等 ),
那么程序就会显得更灵活、更专业化。图片淡入淡出示例程序讲述了在 Visual Basic中如何调用 API函数中的 AlphaBlend和
CopyMemory函数实现图片淡入淡出效果的过程。 具体的操作步骤参见书 302页。
http://www.wenyuan.com.cn/webnew/
10.10 习题
参见书 p216页:一、选择题,二、填空题、三、判断改错题,四、简答题,五、操作题。
三
http://www.wenyuan.com.cn/webnew/
Q & A?
Thanks!
第 10章 Visual Basic多媒体程序设计
(时间,3次课,6学时)
http://www.wenyuan.com.cn/webnew/
教学提示,本章学习应该注意 Visual Basic中如何使用多媒体元素,尤其注意 Visual Basic中控件的概念,因为许多功能的实现都要依赖控件来实现 。
教学目标,通过本章的学习,用户应掌握有关 Visual
Basic的特点及一般程序的设计过程,还要掌握如何在
Visual Basic中使用图像,动画,音频以及视频文件 。
第 10章 Visual Basic多媒体程序设计
http://www.wenyuan.com.cn/webnew/
第 10章 Visual Basic多媒体程序设计
10.1 Visual Basic简介
10.2 与多媒体有关的控件
10.3 在 Visual Basic程序中使用图像
10.4 在 Visual Basic程序中使用动画
10.5 在 Visual Basic程序中使用声音
10.6 在 Visual Basic程序中使用视频
10.7 在 Visual Basic程序中调用电子幻灯片
10.8 其他实例
10.9 上机指导
10.10 习题
http://www.wenyuan.com.cn/webnew/
10.1 Visual Basic简介
10.1.1 Visual Basic基本特点
10.1.2 Visual Basic设计界面
10.1.3 用 Visual Basic开发应用程序
http://www.wenyuan.com.cn/webnew/
10.1.1 Visual Basic基本特点
Visual Basic由 Basic语言发展而来,是高级程序设计语言。,Visual”是指可视化的图形用户界面 (GUI)。
Visual Basic是对 Basic语言的扩充,既保留了 Basic
语言简单易用的优点,又充分利用了 Windows的图形环境,提供了崭新的可视化设计工具。
http://www.wenyuan.com.cn/webnew/
10.1.2 Visual Basic设计界面
启动 Visual Basic 6.0时,首先可以看到 【 新建工程 】
对话框。
根据需要选择一种开始方式,通常选择“标准,EXE”
方式,单击 【 打开 】 按钮,即可进入 Visual Basic集成开发环境,其基本界面。
Visual Basic 6.0集成开发环境 (IDE)主要由菜单条、
工具栏、工具箱、窗体设计器、工程管理器和属性窗口等部分组成。
http://www.wenyuan.com.cn/webnew/
10.1.3 用 Visual Basic开发应用程序
1,创建应用程序的主要步骤
(1) 创建应用程序界面
(2) 设置界面上各个对象的属性
(3) 编写对象响应的程序代码
(4) 保存工程
(5) 运行和调试程序
(6) 生成可执行程序
http://www.wenyuan.com.cn/webnew/
10.1.3 用 Visual Basic开发应用程序
2,程序打包
为了保存和安装方便,Visual Basic语言提供了程序打包功能。当 Visual Basic源程序编制完成后,应编译可执行的,exe文件,并制作安装文件 setup.exe。
安装文件把程序中用到的,dll文件,.vbx文件,.ocx文件等压缩到硬盘指定的文件夹中,这个过程称为“程序打包”。打包后的程序可记录在 CD-R或 CD-RW光盘上。需要使用时,可以运行光盘上的,setup.exe”
安装文件,Visual Basic程序以及相关的文件就可以自动装入硬盘中。
http://www.wenyuan.com.cn/webnew/
10.2 与多媒体有关的控件
10.2.1 Visual Basic的控件简介
10.2.2 Animation控件和 Multimedia控件
10.2.3 Animation控件的使用
http://www.wenyuan.com.cn/webnew/
10.2.1 Visual Basic的控件简介
Visual Basic的控件可以分为内部控件,ActiveX控件和可插入控件 3类。内部控件是 Visual Basic本身提供的控件,这些控件显示在控件箱中。 ActiveX控件是
Visual Basic控件箱的扩充部分,这些控件在使用前必须添加到工具箱内,可插入控件是由其他应用程序创建的对象。利用可插入对象,可以在 Visual Basic
应用程序中使用其他应用程序的对象。
http://www.wenyuan.com.cn/webnew/
10.2.2 Animation控件和 Multimedia控件
与多媒体有关的控件主要有 Animation和 Multimedia控件 。
1,Animation控件
Animation控件用于播放简单的动画,有声音的,avi文件不能在 Animation控件中使用,如果试图装载这样的文件将会产生错误。该控件是 Active X控件,并不是 Visual Basic
标准,exe格式的控件,因此要想使用它,应该通过单击 【
工程 】 |【 部件 】 (Project→Components) 命令添加
Microsoft Windows Common Controls-2 6.0控件,或直接建立,VB专业版”控件或,VB企业版”控件。添加
Animation 控件后的控件箱如图 10.3所示。
图 10.3
http://www.wenyuan.com.cn/webnew/
10.2.2 Animation控件和
Multimedia控件
2,Multimedia控件
Multimedia控件是一组按钮,用来向声卡,MIDI
序列发生器,CD-ROM驱动器、视频 CD播放器和视频磁带记录器等设备发出 MCI命令。 MCI设备还支持 Windows视频文件的回放。
http://www.wenyuan.com.cn/webnew/
10.2.3 Animation控件的使用
Animation控件和 Multimedia控件都是开发多媒体应用程序时经常使用的两个控件,而在播放音频、视频文件时较多使用 Multimedia控件,这里先介绍 Animation控件的简单使用,对于 Multimedia控件,将在以后的几节中详细介绍其使用方法。下面先介绍使用 Animation控件播放,avi文件实现类似 Windows中文件删除应用程序的例子。
新建一个工程,在窗体中添加两个按钮,Command1和
Command2,将其属性设置为 【 开始 】 和 【 停止 】,分别用于开始和停止播放。再添加一个 Animation控件
(Animation1)和一个标签控件 Label1,其属性设置为 【 删除文件 】 。
http://www.wenyuan.com.cn/webnew/
10.3 在 Visual Basic程序中使用图像
10.3.1 直接粘贴图像
10.3.2 图像与动画组合
http://www.wenyuan.com.cn/webnew/
10.3.1 直接粘贴图像
1,处理图像
在多媒体产品中,通常在保证显示质量的前提下,对图像进行预处理。预处理的内容包括:降低图像的颜色深度、统一画面尺寸、统一分辨率和文件格式。
2,使用图像
在界面上直接粘贴图像是最简单的图像使用形式。但是,通常为了灵活使用图像,不直接粘贴图像本身,
而只粘贴与图像大小相等的空白区域。该区域使用
Image工具创建,图像的调入在程序中进行。
http://www.wenyuan.com.cn/webnew/
10.3.2 图像与动画组合
初学者往往把整幅画面制作成动画,不仅数量大,而且程序的动作速度慢。实际上,真正活动的对象只是其中的一小部分,可以在图像中把动画的那一小部分截取下来,作为小动画的背景。利用动画制作软件,
在截取的背景上制作动画。然后,在 Visual Basic中
,选择 Image工具调入图像,使用 Animation控件调入动画。仔细调整动画在图像上的位置,使动画恰好位于截取背景的那个区域。
http://www.wenyuan.com.cn/webnew/
10.4 在 Visual Basic程序中使用动画
10.4.1 实现动画的几种方法
10.4.2 在 Visual Basic中制作动画
10.4.3 几种不同格式动画的播放
http://www.wenyuan.com.cn/webnew/
10.4.1 实现动画的几种方法
1,制作动画的几种方法
利用定时器控件,其实质是每隔一段时间间隔移动一次图形或每隔一段时间间隔重新绘制图形。
交替显示一组图片,一般是两幅或三幅图片,从而实现交替的动画效果。
利用 PictureClip等控件,连续播放一系列图片,从而形成动画。
2,动画控件与函数
在 Visual Basic中,可以使用以下几种方法来播放动画:
使用 MCI控件播放动画使用 API函数播放动画使外挂控件播放动画
http://www.wenyuan.com.cn/webnew/
10.4.2 在 Visual Basic中制作动画
1,用定时器控件实现动画
本例用 Line控件做成指针式电子钟的 3个指针,并固定这些指针的一端,另一端的坐标随时间变化,这就形成了一个钟表。
2,用 PictureClip控件制作动画
利用 PictureClip控件制作动画,实质上就是把存放在
PictureClip控件中的“地球图集,bmp”图片逐个放到图片框中。图 10.7所示为“地球图集,bmp”图片的内容
。
图 10.7
http://www.wenyuan.com.cn/webnew/
10.4.3 几种不同格式动画的播放
动画的格式有 SWF,GIF等,不同格式的动画需要不同的插件,使用不同的方法进行播放。
1,通过,Shockwave Flash”控件和,Microsoft Common
Dialog Control 6.0”控件播放 Flash动画,
(1) 用 Visual Basic新建一个工程。
(2) 在工具箱中右击,在打开的菜单中选择 【 部件 】 选项,
在 【 部件 】 对话框中选中 Shockwave Flash控件和
Microsoft Common Dialo g Control 6.0控件。
(3) 在窗体上创建一个 Flash 控件,命名为 skFlash,并创建一个,Common Dialog Control”控件,命名为,CmdDlg”
,用于打开文件。另外还要添加 4个命令按钮,分别命名为 cmdPlay,cmdStop,cmdRewind,cmdOpen。
(4) 设置对象属性,如表 10.3所示。
http://www.wenyuan.com.cn/webnew/
10.4.3 几种不同格式动画的播放表 10.3
(5) 在代码窗口中输入以下代码:
Private Sub Form_Load()
CmdDlg.Filter = "*.swf" '设置过滤器,专门打开 Flash动画
(swf格式 )
End Sub
Private Sub cmdOpen_Click()
CmdDlg.ShowOpen '打开按钮代码
skFlash.Movie = CmdDlg.FileName
End Sub
http://www.wenyuan.com.cn/webnew/
10.4.3 几种不同格式动画的播放
Private Sub cmdPlay_Click()
skFlash.Play '播放按钮代码
End Sub
Private Sub cmdRewind_Click()
skFlash.Rewind '重头播放按钮代码
skFlash.Play
End Sub
Private Sub cmdStop_Click()
skFlash.Stop?停止按钮代码 图 10.8
End Sub
(6) 运行程序。程序运行画面如图 10.8所示。
http://www.wenyuan.com.cn/webnew/
10.4.3 几种不同格式动画的播放
2,使用 WebBrowser控件播放 GIF动画
(1) 由于 WebBrowser控件并不是 Visual Basic的基本控件,因此在使用该控件之前必须先将其装入工具箱中。装入方法为:
在工具箱中单击鼠标右键,选择 【 部件 】 选项,选中
Microsoft Internet Controls复选框,然后单击 【 确定 】 按钮即可。
(2) 选取 WebBrowser控件 (注意,不同版本 IE的 WebBrowser控件的图标是不同的,IE 4.0及以上版本中的 WebBrowser控件的图标是一个地球; IE 3.0是一个搜索图标 ),添加到窗体的相应位置上。
(3) 设计相应代码,通过使用 WebBrowser控件的 Navigate方法播放 GIF动画文件。
3,播放 FLC格式动画
播放,flc 动画文件的方法与,wav 和,midi 并没有不同,在此不再详细介绍。
http://www.wenyuan.com.cn/webnew/
10.5 在 Visual Basic程序中使用声音
10.5.1 Windows高级音频函数
10.5.2 多媒体 MCI控件
10.5.3 利用 OLE控件播放 WAV声音文件
10.5.4 利用 API函数播放 WAV声音文件
http://www.wenyuan.com.cn/webnew/
10.5.1 Windows高级音频函数
采用 Windows提供的高级音频函数可以播放声音,
常用于简单声音,例如报警声、简短的语音提示和标志性音乐片段等。 播放声音的高级音频函数有:
MessageBeep函数,主要用于启动计算机内扬声器播放报警音响。
SndPlaySound函数,主要用于播放器数据量小于
100KB的波形音频文件。
PlaySound函数,主要在 32b的应用程序中播放波形音频文件。
上述 3种函数的作用是促使计算机内扬声器发声,
不需要使用 MCI设备。另外不支持 MIDI音频信号的播放。
http://www.wenyuan.com.cn/webnew/
10.5.2 多媒体 MCI控件
1,使用播放控制按钮播放声音
当在窗体上添加了播放控制按钮后,属性栏中的 Name
项自动定义为 MMControl1。播放控制按钮包括播放、
停止、暂停、录音等 9个按钮,可以根据实际需要决定在界面上显示的按钮。
2,使用程序播放声音
在制作多媒体产品时,一般不在界面上使用声音控制按钮,而是通过程序对声音进行灵活的控制,操作的具体方法和使用播放控制器播放声音类似,只有两点不同:
① 首先把声音按钮的 Visible属性设置为 False,使其不可见。
② 在程序中安排控制命令,实现对声音的控制。
http://www.wenyuan.com.cn/webnew/
10.5.3 利用 OLE控件播放 WAV声音文件
建立一个窗体,用鼠标选择 OLE控件,在窗体上拖出
OLE区域,打开如图 10.11所示的窗口。在该窗口中选择新建对象的类型,然后单击 【 确定 】 按钮完成在窗口中添加 OLE控件的操作。添加 OLE控件后的窗体。
这样就可以在 OLE控件的 ResourceDoc属性中选择所要播放的文件。要运行程序只需双击 OLE控件即可。
http://www.wenyuan.com.cn/webnew/
10.5.4 利用 API函数播放 WAV声音文件
在窗体的 DECLARATIONS(声明 )区域中输入如下代码:
Private Declare Function sndPlaySound Lib
"winmm.dll" Alias "sndPlaySoundA" (ByVal
lpszSoundName As String,ByVal uFlags As Long)
As Long
′lpszSoundName是一个字符串变量,表示一个
WAV格式的文件名。
′uFlags 用于设定播放状态的各种选项。参数值为
0X00时,实现同步播放,参数值为 0X01时实现非同步播放。
http://www.wenyuan.com.cn/webnew/
10.5.4 利用 API函数播放 WAV声音文件
在命令按钮的单击事件中输入如下代码:
Private Sub Command1_Click()
Dim plays As Long
plays = sndPlaySound("G:\调节音量 \21秒音乐
.WAV",&H0)
End Sub
运行时单击命令按钮即可播放 WAV文件。
http://www.wenyuan.com.cn/webnew/
10.6 在 Visual Basic程序中使用视频
10.6.1 视频信号处理
10.6.2 多媒体 MCI控件
10.6.3 使用 OLE控件播放视频文件
http://www.wenyuan.com.cn/webnew/
10.6.1 视频信号处理
视频信号的处理原则是:
尽量截取重要内容,省略多余部分,以便减少数据量。
采用 AVI文件格式保存视频信号。
充分考虑多媒体产品存储介质的容量,确定使用视频文件的数量。
http://www.wenyuan.com.cn/webnew/
10.6.2 多媒体 MCI控件
在 Visual Basic语言中,使用 MCI控件播放视频文件可以通过定义播放区域播放,也可以不定义播放区域,系统会自动打开一个播放窗口进行播放。
1,不定义播放区域
具体操作步骤如下:
(1)通过菜单在工具箱中添加 MMC控件。
(2)设置对象属性:将表单保持自动命名,将其
Caption属性修改为 【 播放视频 】 。
(3)输入程序。
(4)运行程序,存盘后运行程序,出现视频影片,单击播放按钮,开始播放影片。
http://www.wenyuan.com.cn/webnew/
10.6.2 多媒体 MCI控件
2,定义播放区域
具体步骤如下:
(1)通过菜单在工具箱中添加 MMC控件。
(2)建立视频播放对象 ——首先利用工具箱中的
MMControl工具建立一个播放视频信号的对象。该对象被自动命名为,MMControl”。
(3)使用工具箱中的 PictureBox工具,建立一个播放视频信号的区域,该区域被自动命名为 Picturel。
(4)编写程序。程序中主要包括以下几个部分:
① 控制按钮处理 —— 建立对象后,产生一组控制按钮,按钮的个数和功能与播放声音时相同。如果希望隐藏按钮,则在程序中定义包括“播放”在内的多种控制功能,并应把各按钮的 Visible属性设置成
False。
http://www.wenyuan.com.cn/webnew/
10.6.2 多媒体 MCI控件
② 定义视频播放 —— 用 MMContuol1.Device="AVIVideo"
语句把播放类型定义为视频信号,该语句非常重要,否则
MCI控件无法播放视频信号。
③ 指定播放文件 —— 用 MMControl1.filename="路径文件名 "语句指定文件路径和名字。
④ 定义视频播放区域 ——用
MMControl1.hWndDisplay=picture1.hWnd语句将 Picture1
区域定义在播放视频信号的区域。
⑤ 控制视频文件 ——可使用
MMControl1.Command="Open"语句打开视频文件,至于播放或其他控制可使用 MMControl1.Command="命令参数
"语句发出播放或其他命令。
http://www.wenyuan.com.cn/webnew/
10.6.3 使用 OLE控件播放视频文件
使用 OLE控件播放 AVI格式的视频文件时,将自动打开一个播放窗口播放视频信号。
首先用 OLE工具创建一个矩形。在随后显示的 Insert
Object画面中,选中 【 建立文件关联 】 复选框,再单击 Browse按钮,找到需要运行的视频文件。选中
【 链接 】 和 【 显示为图标 】 两个复选框,使其有效
。最后单击 OK按钮,在窗口中将出现 OLE图标和视频文件名。
http://www.wenyuan.com.cn/webnew/
10.7 在 Visual Basic程序中调用电子幻灯片
10.7.1 电子幻灯片
10.7.2 建立连接
http://www.wenyuan.com.cn/webnew/
10.7.1 电子幻灯片
1.文件格式
通常,电子幻灯片的默认保存类型是“演示文稿”,
文件扩展名为,.ppt”。如果用鼠标双击该文件,则启动 PowerPoint软件,自动进入幻灯片的编辑状态。为了和 Visual Basic多媒体程序相链接,电子幻灯片的保存类型应改为,PowerPoint放映”方式,对应的文件扩展名是,.pps”。用鼠标双击该格式文件时,不进入 PowerPoint编辑状态,而是直接进行演示。
2.存放位置
电子幻灯片的存放地点应相对固定在硬盘的某个逻辑区中,文件夹和文件名也不应变更,否则 Visual
Basic多媒体程序将找不到电子幻灯片文件。
http://www.wenyuan.com.cn/webnew/
10.7.2 建立连接
1,建立方法
建立连接的具体操作步骤如下:
(1)选择工具箱中的 OLE工具,在窗口界面上画一个矩形,随后显示插入对象画面。
(2)在画面中,选择 【 由文件创建 】 单选按钮,然后单击 Browse按钮,找到一个电子幻灯片文件。再选择 【 链接 】 和 【 显示为图标 】 两个复选框,使其有效。最后单击 OK按钮。在窗口界面上随之出现 OLE
图标和对应的电子幻灯片文件名。
(3)运行程序时,用鼠标双击 OLE图标即可启动对应的电子幻灯片文件,并进入演示状态。在电子幻灯片演示结束或者按 Esc键后,返回程序状态。
http://www.wenyuan.com.cn/webnew/
10.8 其他实例
10.8.1 调节音量
10.8.2 用 Visual Basic设计 VCD播放器
10.8.3 只播放一帧
http://www.wenyuan.com.cn/webnew/
10.8.1 调节音量
本例通过 API调用来实现对扬声器音量的控制。 具体操作步骤如下:
(1) 单击 【 文件 】 |【 新建工程 】 命令,创建一个新工程。
(2) 在窗体上添加 8个命令控件和一个标签控件,整体布局如图 10.18所示。
图 10.18
http://www.wenyuan.com.cn/webnew/
10.8.1 调节音量
(3) 设置对象属性,将 Form1的 Caption属性改为 【 调节音量 】 ; Command1至 Command8的 Caption属性分别设置为 【 静 】,【 左 】,【 右 】,【 双 】,【 +】,
【 -】,【 恢复 】,【 退出 】 ; Label1的 Caption属性设置为空白。
(4) 编写事件处理程序。
双击窗体,打开代码窗口,输入以下程序:
Private Declare Function sndPlaySound Lib "winmm.dll"
Alias "sndPlaySoundA" (ByVal lpszSoundName As
String,ByVal uFlags As Long) As Long
Private Declare Function waveOutGetVolume Lib
"winmm.dll" (ByVal uDeviceID As Long,lpdwVolume
As Long) As Long
http://www.wenyuan.com.cn/webnew/
10.8.1 调节音量
Private Declare Function waveOutSetVolume Lib
"winmm.dll" (ByVal uDeviceID As Long,ByVal
dwVolume As Long) As Long
Dim savVol
Private Sub Command1_Click()
i = waveOutSetVolume(0,0)
End Sub
Private Sub Command2_Click()
i = waveOutSetVolume(0,&HFF00)
End Sub
Private Sub Command3_Click()
i = waveOutSetVolume(0,&HFF)
End Sub
http://www.wenyuan.com.cn/webnew/
10.8.1 调节音量
Private Sub Command4_Click()
i = waveOutSetVolume(0,&HFFFF)
End Sub
Private Sub Command5_Click()
x = waveOutGetVolume(0,0) - &H808
i = waveOutSetVolume(0,x)
End Sub
Private Sub Command6_Click()
x = waveOutGetVolume(0,0) + &H808
i = waveOutSetVolume(0,x)
End Sub
Private Sub Command7_Click()
i = waveOutSetVolume(0,savVol)
End Sub
http://www.wenyuan.com.cn/webnew/
10.8.1 调节音量
Private Sub Command8_Click()
End
End Sub
Private Sub Form_Load()
Me.Show
savVol = &H4F4F
i = waveOutSetVolume(0,savVol)
k = App.Path + "\21秒音乐,wav"
Label1.Caption = "音乐文件名," + k
l = &H1 Or &H2
i = sndPlaySound(k,l)
End Sub
http://www.wenyuan.com.cn/webnew/
10.8.2 用 Visual Basic设计 VCD播放器具体操作步骤如下:
(1) 在 Visual Basic中建立一个新窗口,加入多媒体部件 Microsoft
Multimedia Control 6.0以及对话框部件 Microsoft Common
Dialog Control 6.0。
(2) 在窗体中添加 MCI 控件并调整其大小,并将窗体的大小也调整为与其同样大小。
(3) 设置对象属性。
将 9个按钮 (从左至右为,Prev,Next,Play,Pause、
Back,Step,Stop,Record 和 Eject)中的 Record 按钮的
Visible 属性设为 False,其余按钮的 Visible 属性和
Enabled 属性设为 True,以上按钮的设置可通过 MMControl
属性栏内的 【 自定义 】 选项来设置。对话框控件的
DefaultExt属性设为,.DAT”,DialogTitle 属性设为 【 打开多媒体文件 】,Filter 属性设为,*.DAT,*.WAV”,InitDir 属性设为,G:\MPEGAV”(假设光驱盘符为 G)。
http://www.wenyuan.com.cn/webnew/
10.8.2 用 Visual Basic设计 VCD播放器
(4) 编写代码。
在代码窗口中输入如下程序,
Option Explicit
Private Sub Form_Load()
Dim Response As Integer
MMControl1.DeviceType = "MPEGVideo"
CommonDialog1.ShowOpen ′通过对话框选择不同的 VCD文件
MMControl1.filename =
CommonDialog1.filename ′选定要播放的文件
MMControl1.Command = "Open"
MMControl1.Command = "Play"
End Sub
http://www.wenyuan.com.cn/webnew/
10.8.2 用 Visual Basic设计 VCD播放器
Private Sub Form_Unload(Cancel As Integer)
MMControl1.Command = "close"
End Sub
Private Sub MMControl1_BackClick(Cancel
As Integer) ′对 Back按钮的功能改进
Dim i As Integer
i = MMControl1.Position - 100 ′数值 100为后退量,可适当调整
If i < 0 Then
MMControl1.From="0"
http://www.wenyuan.com.cn/webnew/
10.8.2 用 Visual Basic设计 VCD播放器
Else
MMControl1.From="i"
End If
MMControl1.Command="Play"
End Sub
Private Sub MMControl1_StepClick(Cancel
As Integer) ′对 Step按钮的功能改进
Dim j As Integer
j="MMControl1.Position" + 100 ′数值 100为前进量,可适当调整
If j> MMControl1.Length Then
MMControl1.From = MMControl1.Length
http://www.wenyuan.com.cn/webnew/
10.8.2 用 Visual Basic设计 VCD播放器
Else
MMControl1.From = j
End If
MMControl1.Command = "Play"
End Sub
调整好窗体的标题、图标、颜色等,然后编译成,EXE文件,就可以在 Windows下拥有自己的 VCD播放器了。
http://www.wenyuan.com.cn/webnew/
10.8.3 只播放一帧
利用 PictureClip控件可以实现观看动画中任意一帧的功能。具体操作如下:
(1) 新建一个工程。
(2) 在窗体上创建一个命令按钮控件、一个水平滚动条控件、一个标签控件、一个图片框控件和一个 PictureClip控件,窗体布局如图 10.19所示。
(3) 设置对象属性,如表 10.4所示。
http://www.wenyuan.com.cn/webnew/
10.8.3 只播放一帧图 10.19
http://www.wenyuan.com.cn/webnew/
10.8.3 只播放一帧表 10.4
http://www.wenyuan.com.cn/webnew/
10.8.3 只播放一帧
(4) 编写事件处理程序。
在代码窗口中输入以下程序:
Private Sub Command1_Click()
End
End Sub
Private Sub Form_Load()
Picture1.ScaleMode = 3
PictureClip1.Rows = 3
PictureClip1.Cols = 5
Picture1.Picture =
PictureClip1.GraphicCell(0)
End Sub
http://www.wenyuan.com.cn/webnew/
10.8.3 只播放一帧
Private Sub HScroll1_Change()
Picture1.Picture =
PictureClip1.GraphicCell(HScroll1.Value)
Label1.Caption = "第 " +
Format(HScroll1.Value,"00") + " 帧 "
End Sub
Private Sub HScroll1_Scroll()
Picture1.Picture =
PictureClip1.GraphicCell(HScroll1.Value)
Label1.Caption = "第 " +
Format(HScroll1.Value,"00") + " 帧 "
End Sub
http://www.wenyuan.com.cn/webnew/
10.8.3 只播放一帧
(5) 运行程序。
将文件存盘后运行。当拖动滑块时动画当前帧立即更换,如图 10.20就是其中的一个画面。
图 10.20
http://www.wenyuan.com.cn/webnew/
10.9 上机指导
10.9.1 播放 CD
10.9.2 调节音量
http://www.wenyuan.com.cn/webnew/
10.9.1 播放 CD
设计 CD播放器的具体操作如下:
(1)单击 【 文件 】 |【 新建工程 】 命令,创建一个新工程。
(2)在窗体上创建 16个命令按钮控件和一个标签控件。
(3)设置对象的属性,前 15个命令按钮的
name都是 Command1,各按钮靠 Index属性来区别。
(4)编写事件处理程序。在代码窗口中添加以下程序:
http://www.wenyuan.com.cn/webnew/
10.9.1 播放 CD
Option Explicit
Private Sub Command1_Click(Index As
Integer)
playCD (Index + 1)
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Dim i As Integer
i = auxTest()
If i <> True Then
http://www.wenyuan.com.cn/webnew/
10.9.1 播放 CD
MsgBox "对不起,没有检测到声卡,有可能不能欣赏 CD"
End If
End Sub
(5)单击 【 工程 】 |【 添加模块 】 命令,在项目窗口中添加一个模块图标。双击该模块图标,打开模块代码窗口,输入以下程序:
Declare Function mciSendString Lib
"winmm.dll" Alias "mciSendStringA" (ByVal
lpstrCommand As String,ByVal
lpstrReturnString As String,ByVal
uReturnLength As Long,ByVal hwndCallback
As Long) As Long
http://www.wenyuan.com.cn/webnew/
10.9.1 播放 CD
Declare Function auxGetNumDevs Lib
"winmm.dll" () As Long
Global Const SND_ASYNC = &H1
Global Const SND_NODEFAULT = &H2
Global Const SND_LOOP = &H8
Global Const SND_NOSTOP = &H10
Function auxTest() As Boolean
Dim i As Integer
i = auxGetNumDevs()
If i > 0 Then
auxTest = True
Else
auxTest = False
End If
End Function
http://www.wenyuan.com.cn/webnew/
10.9.1 播放 CD
Sub playCD(b As Integer)
Dim a As Long
a = mciSendString("open cdaudio alias
cd wait",0&,0,0)
a = mciSendString("set cd time format
tmsf",0&,0,0)
a = mciSendString("play cd from" &
Str(b),0&,0,0)
End Sub
(6)运行程序,以“播放 CD”为名存盘后运行程序,出现图 10.21所示的界面,在光驱中放入一张 CD音乐光盘,然后选择一首曲子开始播放。
http://www.wenyuan.com.cn/webnew/
10.9.2 调节音量
在用 Visual Basic编程的时候,通常要调用图片,如果图片出现的时候是以各种完美的效果出现的 (如马赛克效果,百叶窗效果等 ),
那么程序就会显得更灵活、更专业化。图片淡入淡出示例程序讲述了在 Visual Basic中如何调用 API函数中的 AlphaBlend和
CopyMemory函数实现图片淡入淡出效果的过程。 具体的操作步骤参见书 302页。
http://www.wenyuan.com.cn/webnew/
10.10 习题
参见书 p216页:一、选择题,二、填空题、三、判断改错题,四、简答题,五、操作题。
三
http://www.wenyuan.com.cn/webnew/
Q & A?
Thanks!