给程序加背景音乐
主要引用到Tmediaplayer这个类的动态实现以及mediaplayer的几个属性-Mode和notify和visible还有几个方法-play和stop和rewind。其中mode可以有七种赋值:mpNotReady mpStopped mpPlaying mpRecording mpSeeking mpPause mpOpen
全部代码如下:(需要的朋友只要复制到自己的unit里就OK了,别忘我的UNIT名字与你们不一样,要改过来:)
unit mp3_form;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,MPlayer;//MPlayer俺是手动加入地
type
TForm1 = class(TForm)
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
MediaPlayer:TMediaPlayer;
procedure OnNotify(Sender:TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{$R mp3.res}//将mp3文件转换为.res文件
{$R midi.res}
//将mp3.res中的数据源转换为文件的一个过程,将在后面引用到
procedure SourceToFile(Const ResName,ResType,FileName:String);
var
Res:TResourceStream;
begin
Res:=TResourceStream.Create(Hinstance,ResName,PChar(ResType));
Res.SaveToFile(FileName);
Res.Free;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
MediaPlayer.Close;
DeleteFile(MediaPlayer.FileName);
end;
//如果背景乐停则通知继续播放
procedure TForm1.OnNotify(Sender:TObject);
begin
if MediaPlayer.Mode = mpstopped then
begin
MediaPlayer.Rewind;
MediaPlayer.P![]()
lay;
end;
MediaPlayer.Notify:=true;
end;
//在窗体显示前
procedure TForm1.FormShow(Sender: TObject);
begin
MediaPlayer:=TMediaPlayer.Create(self); //创建一个Tmediaplayer的实体
MediaPlayer.Visible:=false;
MediaPlayer.Parent:=self;//继承父体
MediaPlayer.OnNotify:=OnNotify;
MediaPlayer.Close;
//SourceToFile(‘resource‘,‘file1‘,‘pretty_boy.mp3‘);//引用Sourcetofile过程获取源文件
SourceToFile(‘source‘,‘file1‘,‘beatit.mid‘);
//MediaPlayer.FileName:=‘pretty_boy.mp3‘;
MediaPlayer.FileName:=‘beatit.mid‘;
MediaPlayer.Open;
MediaPlayer.Play;
end;
end.
全部代码如下:(需要的朋友只要复制到自己的unit里就OK了,别忘我的UNIT名字与你们不一样,要改过来:)
unit mp3_form;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,MPlayer;//MPlayer俺是手动加入地
type
TForm1 = class(TForm)
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
MediaPlayer:TMediaPlayer;
procedure OnNotify(Sender:TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{$R mp3.res}//将mp3文件转换为.res文件
{$R midi.res}
//将mp3.res中的数据源转换为文件的一个过程,将在后面引用到
procedure SourceToFile(Const ResName,ResType,FileName:String);
var
Res:TResourceStream;
begin
Res:=TResourceStream.Create(Hinstance,ResName,PChar(ResType));
Res.SaveToFile(FileName);
Res.Free;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
MediaPlayer.Close;
DeleteFile(MediaPlayer.FileName);
end;
//如果背景乐停则通知继续播放
procedure TForm1.OnNotify(Sender:TObject);
begin
if MediaPlayer.Mode = mpstopped then
begin
MediaPlayer.Rewind;
MediaPlayer.P
lay;
end;
MediaPlayer.Notify:=true;
end;
//在窗体显示前
procedure TForm1.FormShow(Sender: TObject);
begin
MediaPlayer:=TMediaPlayer.Create(self); //创建一个Tmediaplayer的实体
MediaPlayer.Visible:=false;
MediaPlayer.Parent:=self;//继承父体
MediaPlayer.OnNotify:=OnNotify;
MediaPlayer.Close;
//SourceToFile(‘resource‘,‘file1‘,‘pretty_boy.mp3‘);//引用Sourcetofile过程获取源文件
SourceToFile(‘source‘,‘file1‘,‘beatit.mid‘);
//MediaPlayer.FileName:=‘pretty_boy.mp3‘;
MediaPlayer.FileName:=‘beatit.mid‘;
MediaPlayer.Open;
MediaPlayer.Play;
end;
end.

浙公网安备 33010602011771号