Board logo

標題: [Delphi] 播放聲音檔 [打印本頁]

作者: admin    時間: 2010-10-24 11:21     標題: [Delphi] 播放聲音檔

sndPlaySound(
  lpszSoundName: PChar; {聲音文件}
  uFlags: UINT{播放選項}
): BOOL;


//uFlags 參數可選值:
SND_SYNC      = 0; {同步播放, 程序待播放完畢才向下執行}
SND_ASYNC     = 1; {異步播放, 在函數返回之後開始播放, 不影響程序繼續執行}
SND_NODEFAULT = 2; {聲音文件缺失時, 函數自動返回不播放默認聲音}
SND_MEMORY    = 4; {播放內存中的聲音, 譬如資源文件中的聲音}
SND_LOOP      = 8; {循環播放, 需要和 SND_ASYNC 組合使用}
SND_NOSTOP    = 16;{如果當前正在播放聲音, 立即返回 False}

例子
uses MMSystem;
const
  s = 'abc.wav';


//同步播放
procedure TForm1.Button1Click(Sender: TObject);
begin
  sndPlaySound(s, SND_SYNC);
  Beep; {播放完畢才會執行這句}
end;

//異步播放
procedure TForm1.Button2Click(Sender: TObject);
begin
  sndPlaySound(s, SND_ASYNC);
  Beep; {與 abc.wav 一起播放 }
end;


//循環播放
procedure TForm1.Button3Click(Sender: TObject);
begin
  sndPlaySound(s, SND_LOOP or SND_ASYNC);
end;


使用 sndPlaySound 後,函數會佔用的內存而沒有被被釋放,要採用以下方法釋放。



uses   PsAPI;
EmptyWorkingSet(GetCurrentProcess);




歡迎光臨 How2Do (http://forum.how2do.com.hk/) Powered by Discuz! 7.2