第 12章 Visual Basic多媒体应用多媒体技术是计算机处理文本 ( text),图像
( image),图形 ( graphic),音频 ( audio),视频
( video) 等多种信息的综合技术 。 它的出现使计算机在人类的文化娱乐活动中扮演了重要的角色,使越来越多的人和计算机交上了朋友 。 本章主要介绍多媒体控件,API函数,外部引用等方法,通过实例来介绍多媒体应用程序的开发 。
退出
12.1 多媒体基础
12.2 MCI命令和 MMControl控件
12.3 API函数
12.4 引用外部功能编程
12.1 多媒体基础
VB6.0提供了媒体控制接口 MCI( Media Control
Interface) 命令,让用户可以方便地使用计算机中的多媒体设备;提供了访问 Windows应用程序接口
( API) 的方法,通过调用 API函数,可以使用许多
Windows的高级功能 。 还可以通过引用外部程序如
MStts( 微软发音引擎 ) 等,实现更多的多媒体功能 。
多媒体的音频和视频有多种格式 。
12.2 MCI命令和 MMControl控件
12.2.1 MCI命令
MCI提供了许多与设备无关,由应用程序直接调用的命令 。
12.2.2 MMControl控件
MMControl( Microsoft Multimedia Control) 控件是一个用户和 Windows多媒体系统之间的接口,是
Visual Basic 6.0中进行多媒体设计的重要部件 。
1,MMControl控件的添加
2,MMControl控件的按钮功能
3,MMControl控件的常用属性
12.2.3 MMControl控件的特有事件及编程步骤
1.事件
2.编程步骤
( 1) 在工具箱中加载 MMControl控件,并绘制到窗体中 。
( 2) 用 MMControl控件的 DeviceType属性设定多媒体设备类别 。 其值如表 12-1所示 。
( 3) 用 FileName属性指定多媒体文件 。
( 4) 用 MMControl控件的 Command属性控制多媒体设备 。
( 5) 编写相应特殊按钮的响应代码 。
( 6) 设备使用完毕后,注意用 MMControl控件的
Command属性的 Close关闭设备 。
12.2.4 应用举例
【 例 12.1】 制作一个简单的,wav文件播放器。
在窗体上放置多媒体控制部件 MMControl,运行界面如图 12-2所示。以播放,c:
\windows\media\logoff.wav”为例。
程序代码如下:
Private Sub Form_Load()
Form1.MMControl1.Notify = False
Form1.MMControl1.Wait = True
Form1.MMControl1.Shareable = False
Form1.MMControl1.DeviceType = "WaveAudio"
Form1.MMControl1.FileName = "c:
\windows\media\logoff.wav"
Form1.MMControl1.Command = "Open"
End Sub
启动程序,点击播放按钮,就可以听到 logoff.wav
的声音效果了。
12.3 API函数
12.3.1 API函数简介所谓 API就是“应用程序接口”( Application
Programing Interface),它是一些由操作系统自身调用的函数。 Windows API函数由许多“动态链接库”
或 DLL组成。在 32位 Windows中,核心的 API DLL有:
gdi32.dll:图形显示界面的 API。
kernel32.dll:处理低级任务(比如内存和任务管理)的 API。
user32.d11:处理窗口和消息( Visual Basic程序员能把其中一些当作事件访问)的 API。
Winmm.dll:处理多媒体任务(如波形音频、
MIDI音乐和数字影像等)的 API。多媒体编程中主要使用的 API函数就在这个链接库中。
还不断有新的 API出现,处理新的操作系统扩展,
比如 E-MAIL、联网和新的外设。
12.3.2 API函数的说明由于 Windows API函数不是 Visual Basic的内部函数,所以在使用它们之前必须加以声明。说明 API函数一般有两种方法:一种是使用说明语句,另一种是使用 Win32api.txt中的说明文本复制到代码窗口中。
下面先介绍说明语句,使读者对其中的主要关键字的意义有所了解,然后介绍 VB中访问 Win32api.txt
的方法。
格式:
Declare Function 函数名 Lib"库名 " [Alias "别名 "]
( ByVal 参数 1 As 类型,…,ByVal 参数 n As 类型)
As 函数类型。
说明:
( 1)声明中的 Lib 和 Alias 的意义
( 2) 常见的 API参数类型的说明
( 3) 声明中 ByVal的作用
( 4) API函数完整声明的简便方法访问步骤:首先打开,外接程序,菜单执行,外接程序管理器,命令,在,可用外接程序,框中选定
VB6 API VIEWER,在,加载行为,复选框中选定
,加载 /卸载,,确定后在,外接程序,菜单中添加了
,API浏览器,。 API浏览器如图 12-4所示 。
在,文件,菜单中执行,加载文本文件,,出现打开文件对话框,如图 12-5所示所示 。
选择 Win32API.TXT在 API浏览器中出现了可用项,
选中需要声明的函数,把,选定项,中的文本复制到相应的模块 ( 一般是,BAS标准模块或代码的通用说明部分 ),API函数的声明就完成了 。
由于 API函数大多是由 C++编制,而 C++和 VB的变量类型有很大差异,声明中如考虑不周很容易造成错误调用 。 因此,建议读者尽量使用 API浏览器声明
API函数 。
12.3.3 API多媒体函数应用举例
【 例 12.3】 利用 API函数制作 CD播放器。
在本例中使用 mciExecute函数,首先添加标准模块写入声明使用该函数。
Public Declare Function mciExecute Lib
"winmm.dll" _
Alias "mciExecute"( ByVal lpstrCommand As
String) As Long
界面设置如图 12-6所示,各控件属性按图例修改
Caption属性值。其它属性用默认值。
'在窗体加载模块设置按钮属性
Private Sub Form_Load( )
Command1.Enabled = True
Command2.Enabled = False
Command3.Enabled = False
Command4.Enabled = False
Command5.Enabled = False
Command6.Enabled = True
End Sub
'打开媒体设备
Private Sub Command1_Click()
mciExecute "open cdaudio alias cd"
Command1.Enabled = False
Command2.Enabled = True
Command3.Enabled = False
Command4.Enabled = False
Command5.Enabled = False
End Sub
'播放音乐
Private Sub Command2_Click()
mciExecute "play cd"
Command2.Enabled = False
Command3.Enabled = True
Command4.Enabled = False
Command5.Enabled = False
End Sub
'停止
Private Sub Command3_Click()
mciExecute "stop cd"
Command2.Enabled = True
Command3.Enabled = False
Command4.Enabled = True
Command5.Enabled = True
End Sub
'倒回开头位置
Private Sub Command4_Click()
mciExecute "seek cd to start"
Command1.Enabled = False
Command2.Enabled = True
Command3.Enabled = False
Command4.Enabled = False
Command5.Enabled = True
End Sub
'弹出 CD
Private Sub Command5_Click()
If Command5.Caption = "弹碟 " Then
mciExecute "seek cd door open"
Command5.Caption = "回位 "
Else
mciExecute "seek cd to close"
Command5.Caption = "弹碟 "
End If
Command1.Enabled = False
Command2.Enabled = True
Command3.Enabled = False
Command4.Enabled = False
End Sub
'关闭设备及程序
Private Sub Command6_Click()
mciExecute "close cd"
End
End Sub
'声道及声音控制
Private Sub Option1_Click( index As Integer)
mciExecute "set cd audio all off"
Select Case index
Case 0
mciExecute "set cd audio lift on"
Case 1
mciExecute "set cd audio right on"
Case 2
mciExecute "set cd audio all on"
mciExecute "set cd audio lift on"
mciExecute "set cd audio right on"
End Select
End Sub
12.4 引用外部功能编程
12.4.1 MSTTS简介在 VB中除了 Windows的功能外,还可以调用外部的功能链接库 。 下面我们通过对英文发音引擎的调用,
来介绍通过外部引用的方法进行多媒体编程 。
MSTTS是微软出品的一套文字朗读引擎
( Microsoft Text-To-Speech Engine)。由两个文件组成( MSTTS.EXE和 SPCHAPI.EXE),执行后在
Windows文件夹下添加了一个 Speech文件夹。它提供了全篇英文朗读功能。在 Windows中安装 MSTTS后,
实质上就是添加了语音朗读功能和英文朗读 API功能联接库( Microsoft Text-To-Speech Engine和
Microsoft Speech API 4.0),在 VB中可以通过引用
Speech文件夹下的 Vtxtauto.tlb文件来实现英文朗读的功能。 Windows支持的其它公司的软件,其功能核心部分也大多可以用 API函数的形式加以调用。
Vtxtauto.tlb文件不仅提供了全篇英文朗读功能,
还提供了朗读控制的许多方法。如:
停止朗读:( VTxtAuto.VTxtAuto.StopSpeaking)
暂停朗读:( VTxtAuto.VTxtAuto.AudioPause)
恢复朗读:( VTxtAuto.VTxtAuto.AudioResume)
语速调整:( VTxtAuto.VTxtAuto.Speed)等等。
( image),图形 ( graphic),音频 ( audio),视频
( video) 等多种信息的综合技术 。 它的出现使计算机在人类的文化娱乐活动中扮演了重要的角色,使越来越多的人和计算机交上了朋友 。 本章主要介绍多媒体控件,API函数,外部引用等方法,通过实例来介绍多媒体应用程序的开发 。
退出
12.1 多媒体基础
12.2 MCI命令和 MMControl控件
12.3 API函数
12.4 引用外部功能编程
12.1 多媒体基础
VB6.0提供了媒体控制接口 MCI( Media Control
Interface) 命令,让用户可以方便地使用计算机中的多媒体设备;提供了访问 Windows应用程序接口
( API) 的方法,通过调用 API函数,可以使用许多
Windows的高级功能 。 还可以通过引用外部程序如
MStts( 微软发音引擎 ) 等,实现更多的多媒体功能 。
多媒体的音频和视频有多种格式 。
12.2 MCI命令和 MMControl控件
12.2.1 MCI命令
MCI提供了许多与设备无关,由应用程序直接调用的命令 。
12.2.2 MMControl控件
MMControl( Microsoft Multimedia Control) 控件是一个用户和 Windows多媒体系统之间的接口,是
Visual Basic 6.0中进行多媒体设计的重要部件 。
1,MMControl控件的添加
2,MMControl控件的按钮功能
3,MMControl控件的常用属性
12.2.3 MMControl控件的特有事件及编程步骤
1.事件
2.编程步骤
( 1) 在工具箱中加载 MMControl控件,并绘制到窗体中 。
( 2) 用 MMControl控件的 DeviceType属性设定多媒体设备类别 。 其值如表 12-1所示 。
( 3) 用 FileName属性指定多媒体文件 。
( 4) 用 MMControl控件的 Command属性控制多媒体设备 。
( 5) 编写相应特殊按钮的响应代码 。
( 6) 设备使用完毕后,注意用 MMControl控件的
Command属性的 Close关闭设备 。
12.2.4 应用举例
【 例 12.1】 制作一个简单的,wav文件播放器。
在窗体上放置多媒体控制部件 MMControl,运行界面如图 12-2所示。以播放,c:
\windows\media\logoff.wav”为例。
程序代码如下:
Private Sub Form_Load()
Form1.MMControl1.Notify = False
Form1.MMControl1.Wait = True
Form1.MMControl1.Shareable = False
Form1.MMControl1.DeviceType = "WaveAudio"
Form1.MMControl1.FileName = "c:
\windows\media\logoff.wav"
Form1.MMControl1.Command = "Open"
End Sub
启动程序,点击播放按钮,就可以听到 logoff.wav
的声音效果了。
12.3 API函数
12.3.1 API函数简介所谓 API就是“应用程序接口”( Application
Programing Interface),它是一些由操作系统自身调用的函数。 Windows API函数由许多“动态链接库”
或 DLL组成。在 32位 Windows中,核心的 API DLL有:
gdi32.dll:图形显示界面的 API。
kernel32.dll:处理低级任务(比如内存和任务管理)的 API。
user32.d11:处理窗口和消息( Visual Basic程序员能把其中一些当作事件访问)的 API。
Winmm.dll:处理多媒体任务(如波形音频、
MIDI音乐和数字影像等)的 API。多媒体编程中主要使用的 API函数就在这个链接库中。
还不断有新的 API出现,处理新的操作系统扩展,
比如 E-MAIL、联网和新的外设。
12.3.2 API函数的说明由于 Windows API函数不是 Visual Basic的内部函数,所以在使用它们之前必须加以声明。说明 API函数一般有两种方法:一种是使用说明语句,另一种是使用 Win32api.txt中的说明文本复制到代码窗口中。
下面先介绍说明语句,使读者对其中的主要关键字的意义有所了解,然后介绍 VB中访问 Win32api.txt
的方法。
格式:
Declare Function 函数名 Lib"库名 " [Alias "别名 "]
( ByVal 参数 1 As 类型,…,ByVal 参数 n As 类型)
As 函数类型。
说明:
( 1)声明中的 Lib 和 Alias 的意义
( 2) 常见的 API参数类型的说明
( 3) 声明中 ByVal的作用
( 4) API函数完整声明的简便方法访问步骤:首先打开,外接程序,菜单执行,外接程序管理器,命令,在,可用外接程序,框中选定
VB6 API VIEWER,在,加载行为,复选框中选定
,加载 /卸载,,确定后在,外接程序,菜单中添加了
,API浏览器,。 API浏览器如图 12-4所示 。
在,文件,菜单中执行,加载文本文件,,出现打开文件对话框,如图 12-5所示所示 。
选择 Win32API.TXT在 API浏览器中出现了可用项,
选中需要声明的函数,把,选定项,中的文本复制到相应的模块 ( 一般是,BAS标准模块或代码的通用说明部分 ),API函数的声明就完成了 。
由于 API函数大多是由 C++编制,而 C++和 VB的变量类型有很大差异,声明中如考虑不周很容易造成错误调用 。 因此,建议读者尽量使用 API浏览器声明
API函数 。
12.3.3 API多媒体函数应用举例
【 例 12.3】 利用 API函数制作 CD播放器。
在本例中使用 mciExecute函数,首先添加标准模块写入声明使用该函数。
Public Declare Function mciExecute Lib
"winmm.dll" _
Alias "mciExecute"( ByVal lpstrCommand As
String) As Long
界面设置如图 12-6所示,各控件属性按图例修改
Caption属性值。其它属性用默认值。
'在窗体加载模块设置按钮属性
Private Sub Form_Load( )
Command1.Enabled = True
Command2.Enabled = False
Command3.Enabled = False
Command4.Enabled = False
Command5.Enabled = False
Command6.Enabled = True
End Sub
'打开媒体设备
Private Sub Command1_Click()
mciExecute "open cdaudio alias cd"
Command1.Enabled = False
Command2.Enabled = True
Command3.Enabled = False
Command4.Enabled = False
Command5.Enabled = False
End Sub
'播放音乐
Private Sub Command2_Click()
mciExecute "play cd"
Command2.Enabled = False
Command3.Enabled = True
Command4.Enabled = False
Command5.Enabled = False
End Sub
'停止
Private Sub Command3_Click()
mciExecute "stop cd"
Command2.Enabled = True
Command3.Enabled = False
Command4.Enabled = True
Command5.Enabled = True
End Sub
'倒回开头位置
Private Sub Command4_Click()
mciExecute "seek cd to start"
Command1.Enabled = False
Command2.Enabled = True
Command3.Enabled = False
Command4.Enabled = False
Command5.Enabled = True
End Sub
'弹出 CD
Private Sub Command5_Click()
If Command5.Caption = "弹碟 " Then
mciExecute "seek cd door open"
Command5.Caption = "回位 "
Else
mciExecute "seek cd to close"
Command5.Caption = "弹碟 "
End If
Command1.Enabled = False
Command2.Enabled = True
Command3.Enabled = False
Command4.Enabled = False
End Sub
'关闭设备及程序
Private Sub Command6_Click()
mciExecute "close cd"
End
End Sub
'声道及声音控制
Private Sub Option1_Click( index As Integer)
mciExecute "set cd audio all off"
Select Case index
Case 0
mciExecute "set cd audio lift on"
Case 1
mciExecute "set cd audio right on"
Case 2
mciExecute "set cd audio all on"
mciExecute "set cd audio lift on"
mciExecute "set cd audio right on"
End Select
End Sub
12.4 引用外部功能编程
12.4.1 MSTTS简介在 VB中除了 Windows的功能外,还可以调用外部的功能链接库 。 下面我们通过对英文发音引擎的调用,
来介绍通过外部引用的方法进行多媒体编程 。
MSTTS是微软出品的一套文字朗读引擎
( Microsoft Text-To-Speech Engine)。由两个文件组成( MSTTS.EXE和 SPCHAPI.EXE),执行后在
Windows文件夹下添加了一个 Speech文件夹。它提供了全篇英文朗读功能。在 Windows中安装 MSTTS后,
实质上就是添加了语音朗读功能和英文朗读 API功能联接库( Microsoft Text-To-Speech Engine和
Microsoft Speech API 4.0),在 VB中可以通过引用
Speech文件夹下的 Vtxtauto.tlb文件来实现英文朗读的功能。 Windows支持的其它公司的软件,其功能核心部分也大多可以用 API函数的形式加以调用。
Vtxtauto.tlb文件不仅提供了全篇英文朗读功能,
还提供了朗读控制的许多方法。如:
停止朗读:( VTxtAuto.VTxtAuto.StopSpeaking)
暂停朗读:( VTxtAuto.VTxtAuto.AudioPause)
恢复朗读:( VTxtAuto.VTxtAuto.AudioResume)
语速调整:( VTxtAuto.VTxtAuto.Speed)等等。