滚动字幕控件无法在另一个控件上设置MediaClock的情况下滚动
本文关键字:滚动 控件 设置 MediaClock 情况下 字幕 另一个 | 更新日期: 2023-09-27 18:29:20
我正在创建一个应用程序,它显示全屏视频,底部有一个滚动的文本ticker。我使用MediaElement控件将视频和播放列表一起显示,设置播放持续时间。
我将每个媒体持续时间设置如下:
var timeline = new MediaTimeline(_playlist.PlaylistItems[_playlistPlayPosition].LocalMediaFile);
timeline.Duration = _playlist.PlaylistItems[_playlistPlayPosition].Duration;
MediaViewPort.Clock = timeline.CreateClock(false) as MediaClock; //THIS CAUSES AN ISSUE!
if (MediaViewPort.Clock != null)
{
MediaViewPort.Clock.Completed += Clock_Completed;
MediaViewPort.Clock.CurrentTimeInvalidated += Clock_CurrentTimeInvalidated;
}
这一切都很好。
我发现了一个出色的滚动字幕控制(http://koderhack.blogspot.co.uk/2011/05/content-ticker-control-in-wpf.html)我按原样插入的控件。控件不滚动。
我评论了
MediaViewPort.Clock = timeline.CreateClock(false) as MediaClock;
控件开始滚动,但现在我的媒体不再设置持续时间。
控制代码本身太大了,不能在这里发布,我任何人都想在上面的URL上帮助它。
我看不出MediaElement控件上的时钟会对单独的控件产生什么影响。有人能提出建议吗?我不想开始设置计时器来监控媒体持续时间。。。
通过在一个新线程上的一个单独的无铬窗口中启动控件来解决这个问题。