当前位置:编程学习 > VB >>

显示多媒体信息

 

 

随着多媒体技术的迅速发展,管理信息系统中不可避免地出现了表格、图形、图像、声音、动画等非结构化数据。非结构化数据和结构化数据(数值和字符)的存储格式和存储模式不同,需要多媒体数据库来统一管理。

本文介绍了利用Visual Basic 6.0来实现显示或播放多媒体数据,所运用的进程调用等技术对于Windows环境下的其他编程应用也有重要的参考价值。

利用VB实现多媒体数据的显示或播放,主要有以下四种方法:

1、利用进程调用方法

调用其他应用程序来实现对多媒体数据的显示或播放。利用现有的工具软件完成多媒体数据的操作,不需要自己开发。例如可以编程调用WinWord 来显示一篇文本文件,而要显示一幅图形,可以调用Windows 中的画笔(PBrush)来实现,程序如下:

Private Sub Command1-Click()

′本程序调用画笔来显示一幅图形

Dim strTemp As String

Dim strFileName As String

Dim intTemp As Integer

strFileName =″c:windowspicture1.bmp″

′待显示文件名

strTemp = ″c:windowspbrush.exe″

′画笔文件名

strTemp = strTemp & ″ ″ & strFileName

intTemp = Shell(strTemp, 3)′进程调用函数

End Sub

2、利用OLE方法

OLE是两个应用程序间交换信息的一种方法。对于OLE,用于交换信息的两个应用程序分别称为服务者和客户。服务者是数据的提供者,客户是数据的接受者,在VB中,OLE客户控件作为数据的接受者。通过OLE方法显示图形的示例程序如下:

Private Sub Command2-Click()

′本程序用来通过OLE调用一幅图形

OLE1.Class = ″MSDRAW″

′确定嵌入的OLE对象的类名

OLE1.SourceDoc=″c:windowspicture2.bmp″

′待显示的文件名

OLE1.Action = 0 ′OLE-CREATE-EMBED

OLE1.Verb = -3

′当OLE对象被激活时指定一种操作

OLE1.Action = 7 ′OLE-ACTIVATE

OLE1.Enabled = False

′确定控件是否响应用户产生的事件

End Sub

Class属性用来确定服务者应用程序名及它所提供的数据类型;Verb用来确定对象被激活时的操作,值为-3表示对象被激活时隐藏生成该对象的应用程序;Enabled的值为True,允许对象响应事件,为False 阻止对象响应事件。

3、利用VB提供的MCI控件

控件是VB提供的标准化的对象,VB为它提供了标准的事件处理函数或过程,用户可在此基础上编写实际的事件处理程序来响应用户的操作。VB提供的多媒体控件(MCI16.OCX),把很多API的函数转化为简单的属性或事件,简化了编程。例如要播放一段录音,用VB实现如下:

Private Sub Command4-Click()

′本程序利用MCI16.OCX 控件来播放声音

MMControl1.DeviceType = ″ WaveAudio″

′设备类型

MMControl1.Wait = True

MMControl1.Shareable = False

MMControl1.FileName = ″ c:accesssongs ote.wav″

MMControl1.Command = ″ Open″

MMControl1.UpdateInterval = conInterval

′conInterval 为不等于零的常量

End Sub

MMControl为控件名称,DeviceType为设备类型。Windows 为多种多媒体设备指定了设备类型,如Animation(动画播放设备)、DAT(数码录音机)、Sequencer(MIDI音序器)、VCR(程控录像机)等,只需修改DeviceType属性,就可以实现对多种设备的驱动。

4、通过对相应设备直接编程

通过对相应外设直接编程控制可以实现更高级的多媒体显示或播放操作,许多设备都提供了标准的函数或过程,另外Windows还提供了一百多个有关多媒体操作的函数,VB可以直接调用大多数函数或过程来实现多媒体的操作。例如MciSendString()函数,用来向MCI接口传送MCI指令字符串;又如MciGetErrorString()函数,用来返回MCI错误代码的含义。

用VB调用API函数必须先在全程模块中作函数声明,例如MciSendString()函数的声明为:Declare Function MciSendString Lib ″ MMSYSTEM.DLL″(ByVal MciCommand as string)as integer。

补充:软件开发 , Vb ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,