我在WPF中播放视频。我希望它循环播放所以我所做的是当媒体播放事件触发时,我播放我的视频。所以这会给我一个循环。问题是为什么我必须再次创建新的来源?为什么我不能称之为“玩”?
出于某种原因,我不想在XAML中这样做。
查看我的代码段:
string startPath System.IO.Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName);
public Window1()
{
InitializeComponent();
media.Source = new Uri(startPath + @"playlist.wpl");
media.play();
}
private void Media_Ended(object sender, EventArgs e)
{
media.Source = new Uri(startPath + @"playlist.wpl"); //if i dont put this line, video wont play..seems like it cant get the source
media.Play();
}
或者是否有正确的方法在XAML中循环NOT但在此处.cs文件?
答案 0 :(得分:15)
不要在Media_Ended处理程序的开头重置Source,而是尝试将Position值设置回起始位置。 Position属性是TimeSpan,因此您可能需要类似......
的内容private void Media_Ended(object sender, EventArgs e)
{
media.Position = TimeSpan.Zero;
media.Play();
}
答案 1 :(得分:8)
您甚至不需要将LoadedBehavior设置为手动,只需将其保留为播放。
在MediaEnded活动中,您应设置不等于零的视频新位置:
private void MediaElement_MediaEnded(object sender, RoutedEventArgs e)
{
media.Position = TimeSpan.FromMilliseconds(1);
}
答案 2 :(得分:6)
我使其工作设置Unloaded Behavior =“Manual”和以下代码
private void gifAnimation_MediaEnded(object sender, RoutedEventArgs e)
{
gifAnimation.Position = new TimeSpan(0,0,1);
gifAnimation.Play();
}
将位置设置为零无效...
答案 3 :(得分:1)
我认为你应该使用这段代码:
private void Media_Ended(object sender, EventArgs e)
{
media.Position = TimeSpan.Zero;
media.LoadedBehavior = MediaState.Play;
}
我希望这会有所帮助。
答案 4 :(得分:0)
您不必再次设置源。只需将mediaelement的位置设置为media_ended事件的开头
private void MediaElement_MediaEnded(object sender, RoutedEventArgs e)
{
((MediaElement)(sender)).Stop();
((MediaElement)(sender)).Position = new TimeSpan(0, 0, 0);
((MediaElement)(sender)).Play();
}
您可能需要将MediaElement.LoadedBehavior设置为Manual
修改强>
我尝试使用REPEAT标记加载asf文件,并且工作正常
<ASX version = "3.0">
<TITLE>Simple ASX Demo</TITLE>
<REPEAT>
<ENTRY>
<TITLE>Vista Butterfly Video</TITLE>
<AUTHOR>Microsoft Corporation</AUTHOR>
<COPYRIGHT>(c)2007 Microsoft Corporation</COPYRIGHT>
<REF HREF = "Butterfly.wmv" />
</ENTRY>
</REPEAT>
</ASX>
但我认为媒体元素的内置播放列表处理机制存在一些缺陷。我建议遵循以下链接中提到的解决方法
http://blog.revolunet.com/index.php/general/wpf-mediaelement-asx-workaround
如果您有任何问题,请在此处发表评论