
delphi中WindowsMediaPlayer1StatusChange在这个事件中判断
procedureTForm7.WindowsMediaPlayer1StatusChange(Sender:TObject);beginifWindowsMediaPl...
procedure TForm7.WindowsMediaPlayer1StatusChange(Sender: TObject);
begin
if WindowsMediaPlayer1.playState=8 then begin///当前视频播完了.
if i>1 then begin
i:=i-1;/////一共有多少个AVI
WindowsMediaPlayer1.URL:=ExtractFilePath(Paramstr(0))+'大屏滚动播放视频\'+Tmpmemo.Strings[i];
WindowsMediaPlayer1.controls.play;///这里播第二个avi
end else begin
close;////如果i里没有avi了.就关闭这个win
end;
end;
end;
现在的问题只能播第一个,第二个不能播啊... 展开
begin
if WindowsMediaPlayer1.playState=8 then begin///当前视频播完了.
if i>1 then begin
i:=i-1;/////一共有多少个AVI
WindowsMediaPlayer1.URL:=ExtractFilePath(Paramstr(0))+'大屏滚动播放视频\'+Tmpmemo.Strings[i];
WindowsMediaPlayer1.controls.play;///这里播第二个avi
end else begin
close;////如果i里没有avi了.就关闭这个win
end;
end;
end;
现在的问题只能播第一个,第二个不能播啊... 展开
1个回答
展开全部
i:=Tmpmemo.Lines.Count; 是吧
那你初次执行的话
肯定只能是
WindowsMediaPlayer1.URL:=ExtractFilePath(Paramstr(0))+'大屏滚动播放视频\'+Tmpmemo.Strings[i-1]; //只能是 i-1 是吧? 因为是I的话 就超出范围了
假如一开始 I 为 10
第一次就播放 Tmpmemo.Strings[9]
而第二次
你是I=I-1, 还是播放Tmpmemo.Strings[9];
修改办法是 第一次 播放以后 I减1;
然后
if i>1 then begin 改成 if i>0 then begin
那你初次执行的话
肯定只能是
WindowsMediaPlayer1.URL:=ExtractFilePath(Paramstr(0))+'大屏滚动播放视频\'+Tmpmemo.Strings[i-1]; //只能是 i-1 是吧? 因为是I的话 就超出范围了
假如一开始 I 为 10
第一次就播放 Tmpmemo.Strings[9]
而第二次
你是I=I-1, 还是播放Tmpmemo.Strings[9];
修改办法是 第一次 播放以后 I减1;
然后
if i>1 then begin 改成 if i>0 then begin
更多追问追答
追问
第一个播完 第二是黑屏不能自动播.我用鼠标点播放才行.
WindowsMediaPlayer1.URL:=222
WindowsMediaPlayer1.controls.play;
这两个在一起不能自动播吗
追答
我测试了一下 的确不行
不过不放在 WindowsMediaPlayer1StatusChange 事件里就可以播放
估计是bug
比如说设置个全局变量 isOpen :integer;
加一个定时器 Timer
在定时器里执行
if isopen=1 then begin
if i>0 then begin
WindowsMediaPlayer1.controls.stop;
WindowsMediaPlayer1.URL:=Tmpmemo.Lines.Strings[i-1];
WindowsMediaPlayer1.controls.play;
open:=0;
end else begin
end;
end;
在 WindowsMediaPlayer1StatusChange 事件里 写
if WindowsMediaPlayer1.playState=8 then begin
open:=1;
end;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询