sti*_*k81 16 .net wpf video mediaelement
我有一个带有MediaElement的WPF应用程序,我用它来运行视频.我不希望视频在加载时自动播放,因此我将LoadedBehavior设置为Manual.
<MediaElement LoadedBehavior="Manual"
Source="foo.wmv"
MediaOpened="videoElement_MediaOpened" />
Run Code Online (Sandbox Code Playgroud)
然而; 我希望元素在加载时显示视频的第一帧.这有什么神奇的方法吗?
Seb*_*ray 24
你还需要
ScrubbingEnabled="True"
Run Code Online (Sandbox Code Playgroud)
然后在Load上设置一个事件
Loaded="Video1_Loaded"
Run Code Online (Sandbox Code Playgroud)
在Video1_Load方法中添加以下内容:
Video1.Play();
Video1.Pause();
Run Code Online (Sandbox Code Playgroud)
在调用play方法之前,不会呈现任何视频内容.因此,即使您将位置设置为超过第一帧,也不会获得任何数据.
我认为MediaElement.ScrubbingEnabled属性是关键.
获取或设置一个值,该值指示MediaElement是否在暂停时更新搜索操作的帧.这是一个依赖属性.
我尝试了没有ScrubbingEnabled的相同方法,但发现第一帧不会渲染.不确定它是否只是我用于此的硬件.rember的另一个项目是MediaElement的工作方式,一旦你调用Play(),你可能实际上并没有在第一帧上实际上Pause(),所以你可能想要在调用Play之前减少流上的音量并在调用后重置暂停.
小智 9
您不必创建活动,请参阅以下内容
<MediaElement Source="foo.wmv"
MediaOpened="videoElement_MediaOpened"
LoadedBehavior="Pause" ScrubbingEnabled="True" />
Run Code Online (Sandbox Code Playgroud)