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

来源:互联网 发布:wireshark 过滤端口 编辑:程序博客网 时间:2024/05/01 11:14


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


1.首先在declare菜单项中的globalexternal functions中定义引用的windowsapi函数。

functionboolean sndplaysounda (string soundname, uint flags) library″winmm.dll″
functionuint 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表示播放失败。
  函数内容:

booleanxx
uintlui—numdevs
lui—numdevs= waveoutgetnumdevs() 
iflui—numdevs > 0 then 
   
      xx=sndplaysounda(s—wavename,i—option)
          if xx=true then
                 return 1
         else
                return1
   
      endif
else
      return1
endif

3.在程序中调用。

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

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

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

0 0