C#MediaElement有时无法播放视频

时间:2017-05-09 10:38:37

标签: c# .net wpf

我正在使用MediaElement播放视频,并且它有时会失败,没有任何异常。只是黑色窗口来了,并且每次调用Play()(或Pause()然后Play())都会失败。

我将ScrubbingEnabled设置为True,以便我可以向用户显示视频的第一帧

代码: -

<MediaElement x:Name="VideoPlayer" LoadedBehavior="Manual" MediaOpened="VideoPlayer_MediaOpened" MediaEnded="VideoPlayer_MediaEnded" 
 MediaFailed="VideoPlayer_MediaFailed"  UnloadedBehavior="Manual" Stretch="Uniform" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" 
 SizeChanged="VideoPlayer_SizeChanged" SourceUpdated="VideoPlayer_SourceUpdated" ></MediaElement>
  

重启后,exe视频播放完美。

我做错了什么或它的.Net问题?

1 个答案:

答案 0 :(得分:2)

MediaElement使用EVR,而EVR又使用Direct3D。 EVR是一种有限的资源,您每个MediaElement都使用一个实例,并且偶尔播放达到限制。不幸的是,问题在API内部被抑制,并且没有发生合理的错误报告。

您可以使用本答案中引用的工具估算播放实例的数量:使用多个实例VMR 9的黑色视频(此处还有EVR选项)。

  

https://stackoverflow.com/a/23393963/5096993