难道没有高手(循环或重复播放背景音乐,支持mp3,midi,wav格式) (300分)

  • 主题发起人 主题发起人 qujie
  • 开始时间 开始时间
Q

qujie

Unregistered / Unconfirmed
GUEST, unregistred user!
我做一个程序需要循环或重复播放背景音乐,要支持mp3,midi,wav格式,如何处理,我不想用Mediaplayer处理,要简单的方法。
 
uses system;
用mcisendstring()函数;
 
好像不行mcisendstring()函数没找到
 
请看这一段程序:
if (Frm_Main.Panel_JDZSK.Left >
Round((Frm_Main.Panel_JinDu.Width - Frm_Main.Panel_JDZSK.Width) * (0.98)))and (Xun_Huan = True) then

//判断是否一首歌结束并且循环变量为真。
begin

Frm_Main.Play_Stop := True;//停止当前播放
Frm_Main.Play_Sounder(Frm_Main.CheckListBox.Items.Strings[Frm_Main.CheckListBox.ItemIndex]);
   //播放选择的歌曲。
end;


end;

 
我的意思是前台没有任何控制部件的情况下执行背景播放
 
如果知道音乐的时间长度,加一个时间控件不就可以吗?!
 
uses mmsystem;
然后用mcisendstring,如果有谁能在内存流中播放midi请告诉我一声,谢谢
 
Ttimer根本就不触发怎莫办mcisendstring怎莫用
 
procedure TForm1.FormCreate(Sender: TObject);
begin

SndPlaySound('c:/qa.wav',SND_ASYNC or SND_LOOP);
end;

 
procedure MCINOTIFY(Var Message:TMessage);
message MM_MCINOTIFY;
function SendMCIStr(const Value: String):PChar;

-----------------------------------
procedure TForm1.MCINOTIFY(var Message: TMessage);
begin

if (SendmciStr('Status mid mode')='stopped') then

begin

sendmcistr('seek mid to start');
sendmcistr('play mid notify');
end;

end;

function TForm1.SendMCIStr(const Value: String):PChar;
Var Buf:Array[0..4095] of char;
begin

MCISendString(PChar(Value),Buf,Sizeof(Buf),Handle);
Result:=Buf;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
filename:string;
begin

filename:=extractfilepath(application.ExeName)+'happy.mid';
SendMciStr('Open '+filename+' alias mid');
SendMciStr('Play mid notify');
end;

procedure TForm1.FormClose(Sender: TObject;
var Action: TCloseAction);
begin

sendmcistr('close mid');
end;
 
首先感谢各位的帮助,我的问题已经用其他的方法解决了,我会为各位分配积分。
同时我有一个问题希望各位帮助解决,我有一个程序不知为什莫Ttimer控件无法触发,
ontimer事件不执行,我查了一下,timer的各属性正确(不要怀疑我不会用),我想知道什莫{能能能能能能能能}影响了timer的正常运行。
 
多人接受答案了。
 
后退
顶部