关于播放列表的循环????????(100分)

  • 主题发起人 主题发起人 lsj66
  • 开始时间 开始时间
L

lsj66

Unregistered / Unconfirmed
GUEST, unregistred user!
我已把MP3文件放进了播放列表,但不知如何循环播放列表中的文件?
即重复整个列表。
 
是在winamp中吗? 还是自己写的?
如果是winamp, 按循环播放钮不就行了(在播放按钮行的最右的一个)
 
自己写的
 
难道你能播放第一遍就不能播放第二遍?I fl you!
while truedo

begin

PlayList;//你播放第一遍的方法,包括打开播放列表,开始从第一个播放……
end;
 
你的LIST放在什么里?
现在问题代码是怎样?
 
自己写的?用的什么控件?
 
用Tstringlist记录播放列表,用一个整形变量储存位置,每播放一首就INC(位置),
当位置>Tstringlist.count时位置=0,其实这种方法很容易想到,
我在初学的时候已经会用这种方法。
 
先定义notify事件,在notify事件
判断媒体状态为播放完毕。
var
SongsList:TstringList;
index:integer;//用于记录当前播放的序号
.....
if SongsList.count=index-1
then
index:=0
else
index:=index+1;
.......
 
你怎么知道一首曲子已经播放完毕,可以INC(位置)了呢?
 
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
var i:integer;
begin

if mediaplayer1.Position=mediaplayer1.Length then

inc(i)
mediaplayer1.FileName:=listbox1.items.strings;
mediaplayer1.open;
medipalayer1.play;
end;

再修改一下
 
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
var i:integer;
begin

if mediaplayer1.Position=mediaplayer1.Length then

inc(i);
if ListBox1.count = i then

i := 0;
mediaplayer1.FileName:=listbox1.items.strings;
mediaplayer1.open;
medipalayer1.play;
end;

 
listbox的name是lb1,mediaplayer的name是mp1。
程序如下:
procedure TForm1.mp1Notify(Sender: TObject);
begin

if mp1.Position=mp1.Length then
//放到了最后一首歌结束
if lb1.Items.Count-1=lb1.ItemIndex then

begin

lb1.ItemIndex:=0;
mp1.FileName:=lb1.Items.Strings[lb1.itemindex];
mp1.Open;
mp1.Play;
end
else
//没有放到最后一首歌
begin

lb1.ItemIndex:=lb1.ItemIndex+1;
mp1.FileName:=lb1.Items.Strings[lb1.itemindex];
mp1.Open;
mp1.Play;7
end;

end;
 

Similar threads

回复
0
查看
1K
不得闲
D
回复
0
查看
911
DelphiTeacher的专栏
D
D
回复
0
查看
868
DelphiTeacher的专栏
D
后退
顶部