返回列表 發帖

[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);
Bill Tang     MSN:billtang@openplatform.com.hk
Openplatform Technology Co.,Ltd. 資訊坊科技有限公司  
無線工程施工、方案設計、無線產品、天饋材料、終端設備綜合供應商
Tel: 852-27491011  Fax: 852-81483532

返回列表