请问MediaPlayer的一个小问题?请各位高手帮帮忙!(50分)

  • 主题发起人 主题发起人 hxxzy
  • 开始时间 开始时间
H

hxxzy

Unregistered / Unconfirmed
GUEST, unregistred user!
在播放一个音乐文件时如何判断这个文件播放完了,如果播放完了,那就重播。
在这里先谢了!!!
 
可以用mediaplayer.position和midaplayer.length来检查是否播放完一个文件。
 
小弟也是用的这两句
if mediaplayer.position=midaplayer.length then

mediaplayer.play;
这句可以用,可是我要播放下一曲,怎么办呢?
我是这样写的,请兄台指教
c:=c+1;//c是一个整数型,
d:=ListBox1.Items.Count-1;//我将要播放的文件ListBox1控件中,
if c<=d then
//以防出错
if masplayer.position=masplayer.length then

begin

MasPlayer1.filename:=ListBox1.items[c];
slabel.caption:=ListBox1.items[c];
MasPlayer1.open;
MasPlayer1.play;
end;

期中Masplayer1就是mediaplayer
请指教!
 
在开始播放时设置notify为True,然后在OnNotify中检测是否成功
就可以了
 
缺省,MasPlayer1.play是立即返回的,不等歌曲放完
如果你想等歌曲放完之后play再返回,那么 MediaPlayer.Wait:=true
 
还是不行呀!
 
更正:
wait要放在操作前面,而且每个操作都要放:

MediaPlayer1.Wait:=true;
MediaPlayer1.Open();
MediaPlayer1.Wait:=true;
//还要设置
MediaPlayer1.Play();
 
MediaPlayer1.Wait:=true;
MediaPlayer1.Open();
MediaPlayer1.Wait:=true;
//还要设置
MediaPlayer1.Play();
 
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin

ListBox1.Selected := true;
mediaplayer1.filename := ListBox1.Items;
mediaplayer1.open;
mediaplayer1.play;
i := i + 1;
if i > ListBox1.Items.count - 1 then
i := 0;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin

i := 1;
ListBox1.Selected[0] := true;

mediaplayer1.Filename:=ListBox1.Items[0];
mediaplayer1.open;
mediaplayer1.play;
end;


 
mediaplayer1的notify事件中加入:
mediaplayer1.play;
 
后退
顶部