我正在使用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问题?
答案 0 :(得分:2)
MediaElement使用EVR,而EVR又使用Direct3D。 EVR是一种有限的资源,您每个MediaElement都使用一个实例,并且偶尔播放达到限制。不幸的是,问题在API内部被抑制,并且没有发生合理的错误报告。
您可以使用本答案中引用的工具估算播放实例的数量:使用多个实例VMR 9的黑色视频(此处还有EVR选项)。