VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 在VB应用程序中恰当的使用声音
发表评论(0)作者:, 平台:, 阅读:11581, 日期:2000-03-12
在VB应用程序中恰当的使用声音

刘强

众所周知,Visual Basic是功能非常强大的多媒体开发工具,它有丰富的函数

和方法处理各种各样的多媒体信息,能够很灵活的操作图形、声音、动画、影象等

多媒体素材。但有时我们使用Visual Basic开发非多媒体应用程序,并不需要在应

用程序中大量的使用声音,而只是需要在特定的场合出现。如Windows的警告声。

这就要求程序员在恰当的环境中恰当的使用声音文件,既不失去VB在多媒体方面的

特长,又能够为应用程序增加吸引人的效果。

VB可以用于输出声音的方法很多,归结一下,大概有以下四种:

1.利用Beep语句。

这是VB系统提供的一条利用计算机扬声器发声的语句,它只能够发出简单的蜂

鸣声,但在应用程序中大量用于输出警告的信息。如下例允许用户在文本框中输入

数字,当用户输入错误时,系统会报警提示。

Sub Text1_KeyPress (keyascii As Integer)

If keyascii < 48 Or keyascii > 57 Then

Beep:Beep: Beep

keyascii = 0

End If

End Sub

2.其实计算机的蜂鸣器也可以发出不同频率、音高的声音,从而奏出美妙的音

乐。方法是调用Windows的一些有关发声的API函数。Windows系统包含十六个声音

函数,它们都存放在Windows的SOUND.DRV这个驱动程序所包含的动态连接库中。其

中最常用的四个函数是OpenSound,CloseSound,SetVoiceNote,StartSound。其

声明格式如下:

Declare Function OpenSound Lib "Sound" () As Integer

Declare Sub CloseSound Lib "Sound" ()

Declare Function SetVoiceNote Lib "Sound" (ByVal nVoice As

Integer, ByVal nValue As Integer, ByVal nLength As Integer, ByVal nCdots

As Integer) As Integer

Declare Function StartSound Lib "Sound" () As Integer

在Visual Basic的通用过程中声明上述函数后,就可以象使用Visual Basic自

己的函数一样使用Windows的API函数。

下面给出一个例子,只需要在窗体中放置7个按钮组成的控件数组,调用上述

函数就可以简单的实现准确的音阶:

Sub Command1_Click (index As Integer)

a% = OpenSound()

Select Case index

Case 0: f = 37

Case 1: f = 39

Case 2: f = 41

Case 3: f = 42

Case 4: f = 44

Case 5: f = 46

Case 6: f = 48

End Select

m1% = SetVoiceNote(1, f, 4, 0)

m2% = StartSound()

End Sub

3.Visual Basic是第一个支持对象连接与嵌入(OLE)的开发工具,利用OLE可

以简单的在应用程序中插入声音文件。这也是使用Visual Basic开发多媒体软件常

用的方法。使用过VB的读者都知道,VB的ToolBox中就有OLE2.0控件。当我们双击

OLE2.0控件时,会弹出“Insert Object”窗口,在窗口中选择对象类型Object

Type为声音文件,选择“Create from File”,指定硬盘上声音文件的位置,同时

确认Link方式。这些步骤其实是在设置OLE2.0的属性。通过按F4打开Properties属

性窗口,设置其中的Class、SourceDoc、SourceItem等属性也可完成这一工作。按

F5运行程序,双击OLE对象时就会发声。与播放各种声音文件相关的属性为Action,

通过设置Action属性可以打开、驱动、删除相应的声音对象。如下例在窗体装入时

调用声音文件:

Sub Form_Load ()

ole1.Class = "soundrec"

ole1.SourceDoc = "c:\windows\ding.wav"

ole1.Action = 1

ole1.Action = 7

End Sub

4.利用Visual Basic的多媒体控件MCI.VBX。

使用MCI.VBX是Visual Basic开发多媒体软件的主要方法。利用MCI.VBX在应用

程序中加入声音文件是轻而易举的事。有大量的专著介绍MCI.VBX的使用方法,这

里就不在赘述。

总的说来,以上四种方法的复杂程度依次递增,对系统的要求和消耗的系统资

源也越来越大。因而,作为一个VB程序员,在应用程序中,应该能够熟练而准确的

使用上述四种方法并在恰当的场合选择某一种方法,就可以为自己的程序增添效果

同时并不使软件显得华而不实。