在delphi程序中怎样播放*.wav文件(100分)

  • 主题发起人 主题发起人 rzxiaojun
  • 开始时间 开始时间
R

rzxiaojun

Unregistered / Unconfirmed
GUEST, unregistred user!
在delphi程序中怎样播放*.wav文件
 
midiplay

mediaWav.FileName:=sExePath+'Wave1.wav';
mediaWav.Open;
mediawav.play;
 
uses mmsystem;
...
playsound('c:/1.wav');
 
没写全,是这样:
playsound('D:/WINNT/Media/ding.wav',0,SND_FILENAME + SND_ASYNC);
 
将声音文件包入exe文件的方法似乎更理想

建立资源文件 *.rc //*为你建的文件名,下同
内容:名称 WAVE 名称.WAV
用brcc32将*.rc 转为 *.res
在单元{$R *.DFM}的上面加{$*.res}
可在单元过程或函数的任一位置调用播放声音过程。

{播放声音过程为}
procedure MyPlaySound(WavFileName: String;
sndType: Byte);
var
WavFileNameStr: array [0..128] of Char;
PtrSound: PChar;
hRes: THandle;
hResInfo: THandle;
begin

StrPCopy(WavFileNameStr,WavFileName);
hResInfo:=FindResource(HInstance,WavFileNameStr,'WAVE');
hRes:=LoadResource(HInstance, hResInfo);
if hRes>32 then
PtrSound:=LockResource(hRes);
if sndType=0 then
sndPlaySound(PtrSound, snd_Async or snd_Memory);
if sndType=1 then
sndPlaySound(PtrSound, snd_Sync or snd_Memory);
if sndType=2 then
sndPlaySound(PtrSound, snd_Async or snd_Memory or snd_Loop);
if sndType=99 then
sndPlaySound(PtrSound, 0);
end;

 
多人接受答案了。
 
后退
顶部