首页 > 开发 > 综合 > 正文

如何用VB程序来播放WAV文件

2024-07-21 02:20:31
字体:
来源:转载
供稿:网友
注册会员,创建你的web开发资料库,wednesday, september 24 2003 1:24 pm 当一定事件完成时,程序发出特定的信号则可以增加程序的用户界面特性,比如在下载完成或者选择一个命令的时候。使用一个多媒体功能,通过一个vb程序来运行wav文件是一件轻而易举的事情。然而,系统必须为这一操作而安装一个声卡。

  你所需要的api函数称为playsound,以下为该函数的声明:

  public declare function playsound lib "winmm.dll" _
  alias "playsounda" (byvallpszname as string, _
  byvalhmodule as long, byvaldwflags as long) _
  as long

  在这一函数中,第一个变量是名称,包括运行的wave文件的路径。第二个变量在运行文件时通常不使用,所以你可以将它赋值为zero。最后一个变量包含控制函数如何工作的标记。

  为了当前的需要,必须需要两个标记。它们是:

  snd_async (value= 1):以异步方式运行,这意味着当播放声音时函数在运行。
  snd_filename (value = &h20000):第一个变量为一个文件名。
  所以,以下代码播放了dingdong.wav文件中的声音:

  playsound "dingdong.wav", clng(0), _
  snd_async or snd_filename

  当运行在一个程序中运行音频文件时,还有其他两点值得注意。第一,你必须确保一个特定的音频文件存在,否则会产生错误。这一过程可以用以下一个简单的函数来完成:

  public function fileexists(fullfilename) as boolean

  ' passed a filename (with path) returns
  ' true if the file exists, false if not.

  dim s

  s = dir(fullfilename)
   
  if s = "" then
   fileexists = false
  else
  fileexists = true
  end if

  end function

第二,程序必须具有为用户提供关闭声音的选择设置。这一过程可以通过使用一个比如gprogramsoundsenabled的全局布尔变量来实现。

  我的方法是在一个函数中同时处理这些需要,如下所示。(以下代码假设音频文件已经存放在程序文件中)

  private sub playsoundx(filename as string)

  ' if sound is enabled and filename exists,
  ' play the specified sound.

  filename = app.path & "/" & filename

  if fileexists(filename) and gprogramsoundsenabled then
   playsound filename, clng(0), snd_async or snd_filename
  end if

  end sub

  正确使用这些函数,程序就可以播放任何wave文件,如下所示:

  playsoundx "dingdong.wav"

  从vb程序播放音频文件的其他方法包括窗体上的多媒体控制。当你不需要这些控制特性时,以上讲述的技术已经足够,并且很容易掌握。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表