不是那个WindowsMediaPlayer控件,
而是MSMediaPlayer,就是从WINDOWS里导出那个..为什么我的代码不能自动播发下一个节目,如果循环连续播放所有的节目?
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;
而是MSMediaPlayer,就是从WINDOWS里导出那个..为什么我的代码不能自动播发下一个节目,如果循环连续播放所有的节目?
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;
例如,播放一个媒体完毕后,状态是3:
case NewState of
1: begin
Caption := '播放完毕';
歌曲列表索引+1;
得到文件名;
处理播放事件;
end;
end;这个应该明白?