在DELPHI程序中加入背景音乐,MP3的音乐或是FLASH音乐。程序执行时就可以听到给定的MP3音乐,可执行的EXE文件中含有MP3音乐。就像在DELPHI中用图片那样,给别人时,只看到一个EXE文件,打开才可以看到图片,听到音乐,我上次看到了一个方法如下:
首先你应该编写资源文件,
建立一个扩展名为rc的文件,比如为BackMusic.rc, 在其中写入:
BackMusic WAV SOUND.WAV
其中Sound.Wav为一个声音文件
然后在命令行中输入:brcc32 BackMusic.rc
它会生成一个BackMusic.RES文件
然后在程序中写
uses ShallApi,mmsystem;
implementation
{$R *.DFM}
{$R BackMusic.RES}
function ExtractRes(ResType, ResName, ResNewName: string): boolean;
var
Res: TResourceStream;
begin
try
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
try
Res.SavetoFile(ResNewName);
Result := true;
finally
Res.Free;
end;
except
Result := false;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
var
FileName: string;
begin
FileName:=Format('%sBackMusic',[ExtractFilePath(Application.ExeName)]);
ExtractRes('WAV', 'BackMusic', FileName);
sndPlaySound(FileName,snd_async or snd_Memory);
end;
怎么运行时没有声音呀,请各位解决
谢谢
首先你应该编写资源文件,
建立一个扩展名为rc的文件,比如为BackMusic.rc, 在其中写入:
BackMusic WAV SOUND.WAV
其中Sound.Wav为一个声音文件
然后在命令行中输入:brcc32 BackMusic.rc
它会生成一个BackMusic.RES文件
然后在程序中写
uses ShallApi,mmsystem;
implementation
{$R *.DFM}
{$R BackMusic.RES}
function ExtractRes(ResType, ResName, ResNewName: string): boolean;
var
Res: TResourceStream;
begin
try
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
try
Res.SavetoFile(ResNewName);
Result := true;
finally
Res.Free;
end;
except
Result := false;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
var
FileName: string;
begin
FileName:=Format('%sBackMusic',[ExtractFilePath(Application.ExeName)]);
ExtractRes('WAV', 'BackMusic', FileName);
sndPlaySound(FileName,snd_async or snd_Memory);
end;
怎么运行时没有声音呀,请各位解决
谢谢
begin
PlaySound('MyWav'
HInstance
Snd_ASync or Snd_Memory or snd_Resource) ;
end;