1

我正在创建一个应用程序,它显示全屏视频,底部有一个滚动文本代码。我正在使用 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 控件上的 Clock 会对单独的控件产生什么影响。任何人都可以建议吗?我不想开始设置计时器来监控媒体持续时间......

4

1 回答 1

0

通过在新线程上的单独无铬窗口中启动控件来解决此问题。

于 2013-08-30T12:50:18.580 回答