繁体   English   中英

WPF MediaElement将位置设置为视频结尾时冻结

[英]WPF MediaElement FREEZES when setting Position to end of video

我实现了一个简单的视频播放器。 其中有一个MediaElement和一个Slider等。 无论如何,当我将滑块一直向右滑动并将MediaElement.Position设置为视频的结尾时,视频会在视频的最后一帧冻结,并且直到我恢复之前都不会继续播放或响应暂停/播放命令将其他视频加载到MediaElement中。

我放了一个小技巧,仅将Position值更改为距离视频末尾至少20毫秒的数字,然后问题就消失了:

if ( _mediaElement.HasVideo &&
     _mediaElement.NaturalDuration.HasTimeSpan &&
     (_mediaElement.NaturalDuration.TimeSpan.TotalMilliseconds - e.NewValue) > 20)
{
     _mediaElement.Position = new TimeSpan(0, 0, 0, 0, (int) e.NewValue);
}

我不明白为什么视频会在最后一帧冻结? 这是MediaElement控件中的错误,还是有其他方法可以解决此问题?

我发现3年前的一篇帖子描述了同样的问题,他们的解决方案是更新的nVidia驱动程序。 我拥有最新的nVidia驱动程序,但仍然有此问题。 我猜上面的破解是可行的,但是视频会像这样锁定似乎有点奇怪。

请检查是否已将“ 卸载行为”属性设置为“ Close 尝试设置Manual 我认为Close 意味着要卸载视频,因此您的进一步操作无效。

<MediaElement Source="media\numbers.wmv" Name="myMediaElement" 
 Width="450" Height="250" LoadedBehavior="Manual" UnloadedBehavior="Manual" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM