在程序中播放WAV声音文件 Windows启动时那声嘹亮的号角声是否让你感到振奋。OK!让我们在自己的程序中来实现它。仅仅播放一个WAV声音文件,当然不需要劳驾MediaPlayer构件,API函数SndPlaySound()就可以很好地完成这一工作。它定义在MMSystem单元中,有两个参数:第一个指明WAV文件的路径、文件名;第二个指明播放方式。实例如下: uses MMSystem; procedure TForm1.FormCreate(Sender: TObject); begin SndPlaySound('c:\windows\media\tada.wav',SND_ASYNC) end;
playsound;记得加上uses MMSystem
以下给出示例代码(我的资源文件中有“0”至“9”,小数点、负号的声音文件): var hResInfo : THandle; i:integer; sdstr:string; PtrSound : PChar; hRes : THandle; begin for i:=1 to length(trim(soundstr)) do begin case soundstr[i] of '0'..'9': sdstr:='n'+soundstr[i]; '.': sdstr:='d'; '-': sdstr:='f'; end; try hResInfo := FindResource(HInstance,pchar(sdstr),'WAVE'); hRes := LoadResource(HInstance, hResInfo); if hRes > 32 then //its a good load begin //lock the resource ptrSound:=LockResource(hRes); sndplaysound(ptrSound,SND_SYNC or snd_Memory); end; finally freeresource(hresinfo); end; end; 你也可以将播放声音做在一个线程中,这样效果更好!
Windows启动时那声嘹亮的号角声是否让你感到振奋。OK!让我们在自己的程序中来实现它。仅仅播放一个WAV声音文件,当然不需要劳驾MediaPlayer构件,API函数SndPlaySound()就可以很好地完成这一工作。它定义在MMSystem单元中,有两个参数:第一个指明WAV文件的路径、文件名;第二个指明播放方式。实例如下: uses MMSystem;
procedure TForm1.FormCreate(Sender: TObject);
begin
SndPlaySound('c:\windows\media\tada.wav',SND_ASYNC)
end;
var
hResInfo : THandle;
i:integer;
sdstr:string;
PtrSound : PChar;
hRes : THandle;
begin
for i:=1 to length(trim(soundstr)) do
begin
case soundstr[i] of
'0'..'9':
sdstr:='n'+soundstr[i];
'.':
sdstr:='d';
'-':
sdstr:='f';
end;
try
hResInfo := FindResource(HInstance,pchar(sdstr),'WAVE');
hRes := LoadResource(HInstance, hResInfo);
if hRes > 32 then //its a good load
begin //lock the resource
ptrSound:=LockResource(hRes);
sndplaysound(ptrSound,SND_SYNC or snd_Memory);
end;
finally
freeresource(hresinfo);
end;
end;
你也可以将播放声音做在一个线程中,这样效果更好!
SndPlaySound('c:\windows\media\tada.wav',SND_ASYNC)
来晚了!