如何在DELPHI程序中加入背景音乐,MP3的音乐或是FLASH音乐。程序执行时就可以听到给定的MP3音乐,可执行的EXE文件中含有MP3音乐。就像在DELPHI中用图片那样,给别人时,只看到一个EXE文件,打开才可以看到图片,听到音乐。
解决方案 »
- delphi中如何响应用createoleobject创建的对象的事件
- 在leftPanel中是导航图标,点击这些图标在右侧的mainPanel中显示各个窗体,怎样用代码来关闭所有在mainPanel中已经打开过的窗体
- Indy的Demo的一个问题
- Delphi中复制粘贴问题急,在线等!!
- 哪儿朋友能推荐一下socket编程的比较不错的书籍?
- 求图片列表的控件!
- 在delphi中如何简便的将一个数组的各个元素都清零?
- 提议:发的技术帖子,最好把问题描述清楚,同时能提供错误或问题的相关代码?
- 寻找memo中的指定内容,并显示在edit中??
- COM口接受字符编码转换
- 请问各位大侠如何创建一个动态的数组.急呀.
- 如何在DELPHI程序中加入背景音乐
建立一个扩展名为rc的文件,比如为BackMusic.rc, 在其中写入:
BackMusic WAV SOUND.WAV
其中Sound.Wav为一个声音文件
然后在命令行中输入:brcc32 BackMusic.rc
它会生成一个BackMusic.RES文件然后在程序中写uses ShallApi;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;
内容是 SOUND1 WAV SOUND.WAV
保存为
nestexe.rc
然后用brcc32将他编译成res文件unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, MMSystem;type
TForm1 = class(TForm)
btnStart: TButton;
procedure btnStartClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
PtrSound : PChar;
hRes : THandle; {handle to the loaded resource
if 0 indicates nothing playing}
implementation{$R *.dfm}
{$R nestexe.res}procedure TForm1.btnStartClick(Sender: TObject);
begin
sndplaysound(ptrSound,snd_async or snd_Memory);
end;procedure TForm1.FormCreate(Sender: TObject);
var
hResInfo : THandle;
begin
hResInfo := FindResource(HInstance, 'SOUND1', 'WAV');
hRes := LoadResource(HInstance, hResInfo);
if hRes > 32 then {its a good load}
begin {lock the resource}
ptrSound:=LockResource(hRes);
end;
end;end.
FileName:=Format('%sBackMusic.wav',[ExtractFilePath(Application.ExeName)]);其它的资源是相同的道理BackMusic WAV SOUND.WAV
资源名称 资源类型 原文件名资源类型好像可以随便写,只要释放的时候给出正确的扩展名就可以了
uses mmsystem;
playsound(.....);如果是Flashr的swf格式 好像可以直接播放出聲音來。。