播放视频时程序冲突
Procedure conflict when video play
我使用来自 Zeau64 的 Alcinoe 视频播放器,当视频播放时,停止几毫秒然后重新开始。
每个程序单独工作都很好,但我发现我与这些程序有冲突。计时器和跟踪使系统混乱并停止毫秒。
这是我的代码。
procedure TForm9.FormCreate(Sender: TObject);
begin
ALVideoPlayerSurface1.VideoPlayer.prepare(VidUrl1, True);
TrackBar1.Max := ALVideoPlayerSurface1.VideoPlayer.getDuration;
end;
procedure TForm9.ALTrackBar1Tracking(Sender: TObject);
begin
ALVideoPlayerSurface1.VideoPlayer.seekTo(Round(TrackBar1.Value));
SecPass.Text := FormatDateTime('nn:ss', (Round(TrackBar1.Value) div 1000) / SecsPerDay);
end;
procedure TForm9.Timer1Timer(Sender: TObject);
begin
TrackBar1.Value := ALVideoPlayerSurface1.VideoPlayer.getCurrentPosition;
SecPass.Text := FormatDateTime('nn:ss', (ALVideoPlayerSurface1.VideoPlayer.getCurrentPosition div 1000) / SecsPerDay);
end;
我可以在哪里放置 TrackBar Tracking 控件来将视频移动到我想要的位置?
我尝试了 Onclick、OnTap,但我的 Tracking 为 False;
问题是您的计时器正在更新您的 TrackBar 位置,这反过来会触发 TrackBar 跟踪事件,导致您的程序寻找您的视频位置。
我的音乐播放器过去也遇到过同样的问题。我通过添加全局变量 Seeking
来解决它,我在 Trackbar OnMouseDown
事件上设置为 True
并在 OnMouseUp
事件上设置为 False
。然后在 TrackBar 跟踪事件中,我检查 Seeking
变量是否为真。如果是我知道我在手动寻找歌曲中的位置,如果不是我知道 TrackBar 位置是由我的计时器更新的,所以不需要寻找。
我使用来自 Zeau64 的 Alcinoe 视频播放器,当视频播放时,停止几毫秒然后重新开始。 每个程序单独工作都很好,但我发现我与这些程序有冲突。计时器和跟踪使系统混乱并停止毫秒。 这是我的代码。
procedure TForm9.FormCreate(Sender: TObject);
begin
ALVideoPlayerSurface1.VideoPlayer.prepare(VidUrl1, True);
TrackBar1.Max := ALVideoPlayerSurface1.VideoPlayer.getDuration;
end;
procedure TForm9.ALTrackBar1Tracking(Sender: TObject);
begin
ALVideoPlayerSurface1.VideoPlayer.seekTo(Round(TrackBar1.Value));
SecPass.Text := FormatDateTime('nn:ss', (Round(TrackBar1.Value) div 1000) / SecsPerDay);
end;
procedure TForm9.Timer1Timer(Sender: TObject);
begin
TrackBar1.Value := ALVideoPlayerSurface1.VideoPlayer.getCurrentPosition;
SecPass.Text := FormatDateTime('nn:ss', (ALVideoPlayerSurface1.VideoPlayer.getCurrentPosition div 1000) / SecsPerDay);
end;
我可以在哪里放置 TrackBar Tracking 控件来将视频移动到我想要的位置? 我尝试了 Onclick、OnTap,但我的 Tracking 为 False;
问题是您的计时器正在更新您的 TrackBar 位置,这反过来会触发 TrackBar 跟踪事件,导致您的程序寻找您的视频位置。
我的音乐播放器过去也遇到过同样的问题。我通过添加全局变量 Seeking
来解决它,我在 Trackbar OnMouseDown
事件上设置为 True
并在 OnMouseUp
事件上设置为 False
。然后在 TrackBar 跟踪事件中,我检查 Seeking
变量是否为真。如果是我知道我在手动寻找歌曲中的位置,如果不是我知道 TrackBar 位置是由我的计时器更新的,所以不需要寻找。