MSMediaPlayer 怎么循环连续播放多个文件
MSMediaPlayer 如何循环连续播放多个文件?
不是那个WindowsMediaPlayer控件,
而是MSMediaPlayer,就是从WINDOWS里导出那个..
为什么我的代码不能自动播发下一个节目,如果循环连续播放所有的节目?
------解决方案--------------------
要用事件来触发播放下一首的功能,而不是用循环。。。
------解决方案--------------------
它有个 OnPlayStateChange 这个事件,你只要在它状态改变的时候,根据需要就可以了。
例如,播放一个媒体完毕后,状态是3:
不是那个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。。。
发现自己越来越语无伦次了。。。