在WPF MediaElement中显示视频的第一帧

问题描述 投票:16回答:3

我有一个带有MediaElement的WPF应用程序,用于运行视频。我不希望视频在加载后自动播放,因此我将LoadedBehavior设置为“手动”。

<MediaElement LoadedBehavior="Manual" 
              Source="foo.wmv" 
              MediaOpened="videoElement_MediaOpened" />

但是;我希望元素在加载时显示视频的第一帧。有什么神奇的方法吗?

.net wpf video mediaelement
3个回答
24
投票

您还需要

ScrubbingEnabled="True"

然后在加载时设置事件

Loaded="Video1_Loaded"

在Video1_Load方法中添加以下内容:

Video1.Play();
Video1.Pause();

在调用play方法之前,没有呈现任何视频内容。因此,即使将位置设置为超过第一帧,也不会呈现任何数据。

我认为MediaElement.ScrubbingEnabled属性是关键。

获取或设置一个值,该值指示MediaElement是否将更新搜寻操作的框架停顿了。这是一个依赖项属性。

我尝试了没有ScrubbingEnabled的相同方法,但是发现第一帧无法渲染。不知道这是否只是我用于此的硬件。要记住的另一项是MediaElement的工作方式,一旦调用Play(),您可能实际上并没有精确地在第一帧上播放,因此您可能想在调用Pause()并重置之前减小流的音量。调用Play()之后。


9
投票

您不必创建事件,请参阅下文

Pause()

1
投票

我无法发表评论,所以这是我的答案:清理是指在MediaElement暂停时更新渲染的图像。

<MediaElement Source="foo.wmv" 
              MediaOpened="videoElement_MediaOpened" 
              LoadedBehavior="Pause" ScrubbingEnabled="True" />

感谢您的擦洗技巧!

© www.soinside.com 2019 - 2024. All rights reserved.