在实际运用中,有时候需求不是向人为的控制视频怎么播放,而是单一的循环播放视频,但是在wpf中默认的是播放一次就结束了!
为此,我又度娘了下,发现实现的方式有很多,比如采用故事板的方式(这其实是一个很有趣的方式),不过个人感觉大材小用,也复杂了些,还是贴下方式
<MediaElement Name="myMediaElement" Margin="13,35,14,0" Height="100" VerticalAlignment="Top">
<MediaElement.Triggers>
<EventTrigger RoutedEvent="MediaElement.Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<MediaTimeline Source="banner[2].avi" Storyboard.TargetName="myMediaElement"
RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</MediaElement.Triggers>
</MediaElement>
当然,还有更简单的方式,不是有一个mediaended时间么? 在里面协商movie.paly()! 什么!你会发现一样不能播放,这时候需要先停止,再播放,这是以下代码:
private void mediaShow_MediaEnded(object sender, RoutedEventArgs e)
{
(sender as MediaElement).Stop();
(sender as MediaElement).Play();
}
为什么要停止呢!? 这是我的理解,就好比指针,当播放结束后,指针指向影片的结尾处,这时候你再播放还是在结尾处,所以需要用stop来恢复一下,使指向影片的开头。当然这只是我的个人意见以及理解,看见有人使用先停止再播放想到的。