读书人

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

发布时间: 2012-04-20 15:27:03 作者: rapoo

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: beginCaption := '播放完毕';歌曲列表索引+1;得到文件名;处理播放事件;end;  end;
[解决办法]
播放一个媒体完毕后,状态是1,正在播放是3,正在连接是9,暂停是2。。。

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

读书人网 >.NET

热点推荐