龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VB开发 >

在VB应用程序中恰当的使用声音

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
众所周知,VisualBasic是功能非常强大的多媒体开发工具,它有丰富的函数和方法处理各种各样的多媒体信息,能够很灵活的操作图形、声音、动画、影象等多媒体素材。但有时我们使用
众所周知,VisualBasic是功能非常强大的多媒体开发工具,它有丰富的函数和方法处理各种各样的多媒体信息,能够很灵活的操作图形、声音、动画、影象等多媒体素材。但有时我们使用VisualBasic开发非多媒体应用程序,并不需要在应用程序中大量的使用声音,而只是需要在特定的场合出现。如Windows的警告声。这就要求程序员在恰当的环境中恰当的使用声音文件,既不失去VB在多媒体方面的特长,又能够为应用程序增加吸引人的效果。VB可以用于输出声音的方法很多,归结一下,大概有以下四种:
  
  1.利用Beep语句
  这是VB系统提供的一条利用计算机扬声器发声的语句,它只能够发出简单的蜂鸣声,但在应用程序中大量用于输出警告的信息。如下例允许用户在文本框中输入数字,当用户输入错误时,系统会报警提示。
  SubText1_KeyPress(keyasciiAsInteger)
  Ifkeyascii<48Orkeyascii>57Then
  Beep:Beep:Beep
  keyascii=0
  EndIf
  EndSub
  
  2.其实计算机的蜂鸣器也可以发出不同频率、音高的声音,从而奏出美妙的音乐。方法是调用Windows的一些有关发声的API函数。Windows系统包含十六个声音函数,它们都存放在Windows的SOUND.DRV这个驱动程序所包含的动态连接库中。其中最常用的四个函数是OpenSound,CloseSound,SetVoiceNote,StartSound。其声明格式如下:
  DeclareFunctionOpenSoundLib"Sound"()AsInteger
  DeclareSubCloseSoundLib"Sound"()
  DeclareFunctionSetVoiceNoteLib"Sound"(ByValnVoiceAs
  Integer,ByValnValueAsInteger,ByValnLengthAsInteger,ByValnCdots
  AsInteger)AsInteger
  DeclareFunctionStartSoundLib"Sound"()AsInteger
  在VisualBasic的通用过程中声明上述函数后,就可以象使用VisualBasic自己的函数一样使用Windows的API函数。下面给出一个例子,只需要在窗体中放置7个按钮组成的控件数组,调用上述函数就可以简单的实现准确的音阶:
  SubCommand1_Click(indexAsInteger)
  a=OpenSound()
  SelectCaseindex
  Case0:f=37
  Case1:f=39
  Case2:f=41
  Case3:f=42
  Case4:f=44
  Case5:f=46
  Case6:f=48
  EndSelect
  m1=SetVoiceNote(1,f,4,0)
  m2=StartSound()
  EndSub
  
  3.VisualBasic是第一个支持对象连接与嵌入(OLE)的开发工具,利用OLE可以简单的在应用程序中插入声音文件。这也是使用VisualBasic开发多媒体软件常用的方法。使用过VB的读者都知道,VB的ToolBox中就有OLE2.0控件。当我们双击OLE2.0控件时,会弹出“InsertObject”窗口,在窗口中选择对象类型ObjectType为声音文件,选择“CreatefromFile”,指定硬盘上声音文件的位置,同时确认Link方式。这些步骤其实是在设置OLE2.0的属性。通过按F4打开Properties属性窗口,设置其中的Class、SourceDoc、SourceItem等属性也可完成这一工作。按F5运行程序,双击OLE对象时就会发声。与播放各种声音文件相关的属性为Action,通过设置Action属性可以打开、驱动、删除相应的声音对象。如下例在窗体装入时调用声音文件:
  SubForm_Load()
  ole1.Class="soundrec"
  ole1.SourceDoc="c:windowsding.wav"
  ole1.Action=1
  ole1.Action=7
  EndSub
  4.利用VisualBasic的多媒体控件MCI.VBX。
  使用MCI.VBX是VisualBasic开发多媒体软件的主要方法。利用MCI.VBX在应用程序中加入声音文件是轻而易举的事。有大量的专著介绍MCI.VBX的使用方法,这里就不在赘述。
  总的说来,以上四种方法的复杂程度依次递增,对系统的要求和消耗的系统资源也越来越大。因而,作为一个VB程序员,在应用程序中,应该能够熟练而准确的使用上述四种方法并在恰当的场合选择某一种方法,就可以为自己的程序增添效果同时并不使软件显得华而不实。->

精彩图集

赞助商链接