如果是播放完毕才执行下一语句的话,应该用哪个参数?

解决方案 »

  1.   

    试试参数为SND_MEMORY or SND_ASYNC呢!
      

  2.   

    SND_MEMORY是把声音文件载入内存
    SND_ASYNC是指异步播放
    SND_NODEFAULT是指如果没有找到声音文件的化,不播放默认声音。
      

  3.   

    SND_MEMORY:tada代表内存中的声音数据;
    SND_NODEFAULT:tada指定的数据未能找到时,不播放缺省声音。
    SND_ASYNC:异步播放。播放完毕才执行下一语句的话:要用SND_ASYNC————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  4.   

    不过现在一般用PlaySound了,sndPlaySound是考虑兼容才继续保留的————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  5.   

    大侠:你们看一下下面代码是否有问题,如果没有问题,我就copy过去了。关于资源文件的。也就是将wav文件存到资源文件,这样调用的时候不用每次读硬盘。
    三伏天,看书脑袋昏。
    在一个记事本里面
      WAVE1 WAVE PRELOAD FIXED PURE "1.WAV"
    保存为 src.rc
    然后用bcc src.rc
    在程序里面
    加上 {$R src.res}使用方法如下:
      var
        rhV,hV:THANDLE;
        pV:Pointer;
    以上定义为全局变量。rhV:=FindResource(HInstance,,'WAVE1','WAVE');
    hV:=LoadResource(HInstance,rhV);
    pV:=LockResource(hV);
    以上放在initialization部分。调用的时候:
    sndPlaySound(pV,SND_SYNC or SND_MEMEORY);关闭程序的时候:
    FreeResource(hV);
      

  6.   

    大侠们:我又找了一种方法,
    uses MMSystem;var
      tada: string;procedure TForm1.Button1Click(Sender: TObject);
    begin
      sndPlaySound(Pointer(tada), SND_MEMORY
        Or SND_NODEFAULT Or SND_ASYNC);
    end;initialization
      tada := LoadFile('C:\Windows\Media\Tada.wav');finalization
      tada := ''; // Releases the memory taken by the string
    end.
      

  7.   

    To lxpbuaa(桂枝香在故国晚秋) ,you write:
    SND_MEMORY:tada代表内存中的声音数据;
    SND_NODEFAULT:tada指定的数据未能找到时,不播放缺省声音。
    SND_ASYNC:异步播放。播放完毕才执行下一语句的话:要用SND_ASYNC
    ====================
    其中最后一行你说的跟我刚才做的试验正好相反,是笔误吧?