c#WPF如何在不声明新源的情况下从mediaended事件处理程序重复播放MediaElement?
我在WPF中播放video。我希望它循环播放所以我所做的是当媒体播放事件触发时,我播放我的video。 所以这会给我一个循环。 问题是为什么ui必须再次创造新的来源? 为什么我不能称之为’玩’?
出于某种原因,我不想在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(); }
或者是否有一种正确的方法来循环NOT在XAML中,但在这里.cs文件?
不要在Media_Ended处理程序的开头重置Source,而是尝试将Position值设置回起始位置。 Position属性是TimeSpan,所以你可能想要像……
private void Media_Ended(object sender, EventArgs e) { media.Position = TimeSpan.Zero; media.Play(); }
您甚至不需要将LoadedBehavior设置为手动,只需将其保留为Play 。
在MediaEnded活动中,您应该设置不等于零的video新位置:
private void MediaElement_MediaEnded(object sender, RoutedEventArgs e) { media.Position = TimeSpan.FromMilliseconds(1); }
我让它工作设置UnloadedBehavior =“手动”和以下代码
private void gifAnimation_MediaEnded(object sender, RoutedEventArgs e) { gifAnimation.Position = new TimeSpan(0,0,1); gifAnimation.Play(); }
将位置设置为零不起作用……
我认为你应该使用这段代码:
private void Media_Ended(object sender, EventArgs e) { media.Position = TimeSpan.Zero; media.LoadedBehavior = MediaState.Play; }
我希望这将有所帮助。
您不必再次设置源。只需将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文件,并且其工作正常
Simple ASX Demo Vista Butterfly Video Microsoft Corporation (c)2007 Microsoft Corporation
但我认为媒体元素的内置播放列表处理机制存在一些缺陷。我建议遵循以下链接中提到的解决方法
https://blog.revolunet.com/index.php/general/wpf-mediaelement-asx-workaround
如果您有任何问题,请在此发表评论
上述就是C#学习教程:c#WPF如何在不声明新源的情况下从mediaended事件处理程序重复播放MediaElement?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1003814.html