中国计算机报1997年9月28日 总763期  

在PB中实现声音文件的播放

余波

  一个商业软件不仅要功能强大,而且界面也要美观,如果加入适量声音会增强软件的人机交互性,让软件给人更为深刻的印象。PB作为客户/服务器的客户端开发工具,在数据库管理上有强大的功能,但PB中本身没有播放声音的函数、对象。我们知道在Windows API函数中有“sndplaysoundA”可实现声音文件的播放。要在PB中调用该函数可按下例实现。

  1.首先在Declare菜单项中的global external functions中定义引用的Windows API 函数。

  Function boolean sndPlaySoundA (string SoundName, uint Flags) Library ″WINMM.DLL″

  Function uint waveOutGetNumDevs () Library ″WINMM.DLL″

  2.然后定义一个播放声音文件的函数。

  函数名与参数:f—playwave(s—wavename,i—option)

s—wavename:是要播放的声音文件,数据类型为string。

i—option:是播放时的控制参数,数据类型为integer,

  i—option=0(同步播放);i—option=1(异步播放)

  返回值说明:本函数返回值类型为integer,1表示播放成功,-1表示播放失败。

  函数内容:

  boolean xx

   uint lui—numdevs

  lui—numdevs = WaveOutGetNumDevs()

  If lui—numdevs > 0 Then

xx=sndPlaySoundA(s—wavename,i—option)

if xx=true then

return 1

else

return -1

end if

  Else

   return -1

  End If

  3.在程序中调用。

  下面的程序是实现同步播放名为“a1.wav"的声音文件:

   string ls—soundname

   int ll—rtn

ls—soundname=″c:\wave\a1.wav″

  ll—rtn=f—playwave(ls—soundname,0)

 back.gif (1185 字节)