我有一个带有MediaElement的WPF应用程序,用于运行视频。我不希望视频在加载后自动播放,因此我将LoadedBehavior设置为“手动”。
<MediaElement LoadedBehavior="Manual"
Source="foo.wmv"
MediaOpened="videoElement_MediaOpened" />
然而;我希望元素在加载时显示视频的第一帧。有什么神奇的方法吗?
最佳答案
你还需要
ScrubbingEnabled="True"
然后在加载时设置一个事件
Loaded="Video1_Loaded"
在Video1_Load方法中,添加以下内容:
Video1.Play();
Video1.Pause();
在调用play方法之前,不会呈现任何视频内容。因此,即使将位置设置为超过第一帧,也不会渲染任何数据。
我认为MediaElement.ScrubbingEnabled属性是关键。
获取或设置一个值,该值指示
MediaElement是否将更新
搜寻操作的框架
停顿了。这是一个依赖属性。
我尝试了没有
ScrubbingEnabled
的相同方法,但是发现第一帧无法渲染。不知道这是否只是我用于此的硬件。要记住的另一项内容是MediaElement的工作方式,一旦调用Play()
,您可能实际上并没有精确地在第一帧上播放Pause()
,因此您可能希望在调用Play()
并重置之前减小流的音量。调用Pause()
之后。