我想在敲键盘时或点MOUSE键时播放WAVE,但发现当键盘重复按下后声音总是不同
步,我想能不能利用内存映射技术加速播放?

解决方案 »

  1.   

    我用的是PLAYSOUND,设置为同步时,播放声音的速度明显慢于按钮的速度,按下键盘十几下才响二三下;而当我设置为异步时,播放声音的速度基本同步于按钮的速度,但按一下键盘会
    有回音,像是同时响了两下。
      

  2.   

    NormSound:THandle;  procedure LoadSound(Res:string;var Snd:THandle);
      var
        hResInfo:THandle;
      begin
        hResInfo:=FindResource(HInstance,pchar(Res),'IconView');
        if hResInfo<>0 then
          Snd:=LoadResource(HInstance,hResInfo);
      end;  LoadSound('MiniSound',MiniSound);procedure TForm1.Play(Sound:THandle);
    var
      lpRes:PChar;
    begin
      if Sound<>0 then begin
        lpRes:=LockResource(Sound);
        PlaySound(lpRes,0,SND_SYNC OR SND_MEMORY);
        UnlockResource(Sound);
      end;
    end;
      

  3.   

    谢谢,我已成功的解决了,原来是我在KEYPRESS事件中写错了语句,结果让键盘按下时和弹起时都发音,SOORY,谢谢大家的热情帮忙