我有一个带有 MediaElement 的 WPF 应用程序,我用它来运行视频。我不希望视频在加载时自动播放,因此我将 LoadedBehavior 设置为 Manual。
<MediaElement LoadedBehavior="Manual"
Source="foo.wmv"
MediaOpened="videoElement_MediaOpened" />
但是;我希望元素在加载时显示视频的第一帧。有什么神奇的方法可以做到这一点吗?
最佳答案
你还需要
ScrubbingEnabled="True"
然后在 Load 上设置一个事件
Loaded="Video1_Loaded"
在 Video1_Load 方法中添加以下内容:
Video1.Play();
Video1.Pause();
在调用播放方法之前,不会呈现任何视频内容。因此,即使您将位置设置为超过第一帧,您也不会渲染任何数据。
我认为 MediaElement.ScrubbingEnabled属性(property)是关键。
Gets or sets a value that indicates whether the MediaElement will update frames for seek operations while paused. This is a dependency property.
我在没有 ScrubbingEnabled
的情况下尝试了相同的方法,但发现第一帧无法呈现。不确定这是否只是我为此使用的硬件。另一项要记住的是 MediaElement 的工作方式,一旦您调用 Play()
您实际上可能不会在第一帧上完全 Pause()
,因此您可能想要在调用 Play()
之前降低流的音量并在调用 Pause()
之后重置。
关于.net - 在 WPF MediaElement 中显示视频的第一帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1346886/