MSMediaPlayer 怎么循环连续播放多个文件

MSMediaPlayer 如何循环连续播放多个文件?
不是那个WindowsMediaPlayer控件,
而是MSMediaPlayer,就是从WINDOWS里导出那个..

为什么我的代码不能自动播发下一个节目,如果循环连续播放所有的节目?

Delphi(Pascal) code

procedure TMainForm.LoadAvi;
var
    i,j:Integer;
    f:string;
begin

    //讀取列表
    with DataM.Q2 do
    begin
        Close;
        SQL.Clear;
        SQL.Add('Select * from Files where type=''視頻'' order by num ');
        Open;
        if RecordCount>0 then
        begin
            SetLength(ArrAvi,RecordCount);
            for i :=0  to RecordCount-1 do
            begin
                ArrAvi[i]:=VarToStr(FieldValues['Path'])+VarToStr(FieldValues['Filename']);
                next;
            end;
            
    
        end;         
    end;

    //播放列表
    with MSMediaPlayer1 do
    begin       
        for j := 0 to high(ArrAvi) do
        begin  
          Invalidate;
          f:=PChar(ArrAvi[j]);
          FileName:=PChar(ArrAvi[j]);
          if FileExists(FileName)=false then
            Exit;
          Play;
        end;           
    end; 
    
end;



------解决方案--------------------
要用事件来触发播放下一首的功能,而不是用循环。。。
------解决方案--------------------
它有个 OnPlayStateChange 这个事件,你只要在它状态改变的时候,根据需要就可以了。
例如,播放一个媒体完毕后,状态是3:
Delphi(Pascal) code
  case NewState of
  1: begin
Caption := '播放完毕';
歌曲列表索引+1;
得到文件名;
处理播放事件;
end;
  end;

------解决方案--------------------
播放一个媒体完毕后,状态是1,正在播放是3,正在连接是9,暂停是2。。。

发现自己越来越语无伦次了。。。