如何循环播放音乐?(不使用任何控件,USER MMSYSTEM)(50分)

  • 主题发起人 主题发起人 at1234
  • 开始时间 开始时间
A

at1234

Unregistered / Unconfirmed
GUEST, unregistred user!
//播放音乐mp3
MCISendString('OPEN 1.mp3 ALIAS NN'), nil, 0, 0);
MCISendString('PLAY NN ',nil, 0, 0);
//停止播放
MCISendString('STOP NN ', '', 0, 0);
如何循环播放音乐?(不使用任何控件,USER MMSYSTEM);而且上面的代码是不是存在内存泄漏,运行多次程序后,会感到一次比一次慢!
 
用PlaySound函数 。PlaySound(SoundString,null,SND_LOOP)
 
我不想用playsound,只用MCISendString.
 
找死了,好不容易测试通过。
uses MMSystem;
var t1:array[0..128] of Char;
maxLen,curlen:Integer;
{$R *.dfm}

procedure TForm1.Button1Click(Sender:TObject);
begin

MCISendString('OPEN c:/1.mp3 ALIAS NN',0,0,0);
//打开
MCISendString('status NN length',@t1[0],127,0);
//返回音乐长度
maxLen:=StrToInt(t1);
Label2.Caption:=IntToStr(maxLen);
MCISendString('PLAY NN from 0 ',000,10000,0);
//开始播放
Timer1.Enabled:=true;
end;


procedure TForm1.Timer1Timer(Sender:TObject);
begin

MCISendString('status NN position',@t1[0],127,0);
//获取当前长度
curlen:=StrToInt(t1);
if ( curlen>=maxLen) then

MCISendString('PLAY NN from 0',0,0,0);
//如果播放完成,重新开始
Label1.Caption:=t1;
end;
 
我的delphi硬盘坏了,等我重装后试试。
 
我删除了原来的windows2000,重装windowsXP,上面播放mp3的代码就无效了,为什么?没有任何声音。
 
怎么没有人会吗?xp下怎么用mci播放mp3呢?
 
你应该找找自己的原因,这个代码我是在xp,D7测试通过的。
 
to-zywcd,
我查过了,确实是我的程序问题,我用了一个opendialog用来打开音乐文件,然后播放该文件,原来我的问题出在我的音乐文件放在桌面上,opendialog.filename是取的音乐文件路径,中间有空格,所以就不能播放了,请教您怎样解决这个问题吗?
 
怎样顺序播放MP3?比如C盘下有多个MP3文件.怎样顺序播放它?到头再循环
 
我自己解决了路径有空格的问题,在filename的前后加上",把它括起来使用,就没有问题了。
 
to-zywcd ,谢谢你!
 
顺序播放你就像上面的代码一样,就是一个播放完毕后重新打开另外的文件就是。
 
后退
顶部