使用WPF中的mediaelement控件开播放视频很容易,直接设置它的Source然后Play就可以了,最近有一个需求是加载视频后,先停在第一帧,一段时间后再根据需求开始播放视频,我开始的想法是加载视频后开始播放,然后马上暂停。
MediaElement _video = new MediaElement();
_video.Source = new Uri("D:\\a.mp4");
_video.Play();
_video.Pause();
以前使用DirectShow时,就是采用的这种方法,但是使用MediaElement时,却无效了,播放区域还是黑色的。
经过研究发现是MediaElement控件没有刷新的原因,需要把MediaElement.ScrubbingEnabled 的属性设置为true,下面是代码
MediaElement _viedo = new MediaElement();
_viedo.Source = new Uri("D:\\a.mp4");
//MediaElement.ScrubbingEnabled 属性 获取或设置一个值,该值指示 MediaElement 是否将在暂停状态下为查找操作更新帧。
_viedo.ScrubbingEnabled = true;
_viedo.Pause();
_viedo.Position = TimeSpan.FromTicks(1);