c# WPF 如何在不声明新源的情况下从 mediaending 事件处理程序重复 MediaElement 播放?
我正在 WPF 中播放视频。我希望它循环播放,所以我所做的是当 mediaded 事件触发时,我播放我的视频。所以这会让我循环。问题是为什么我必须再次创建新的源?为什么我不能直接叫“玩”?
由于某种原因,我不想在 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 中而是在此处的 .cs 文件中循环?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
不要在 Media_Ended 处理程序开始时重置 Source,而是尝试将 Position 值设置回起始位置。 Position 属性是一个 TimeSpan 所以你可能想要类似......
Instead of resetting the Source at the start of your Media_Ended handler, try setting the Position value back to the start position. The Position property is a TimeSpan so you probably want something like...
您甚至不需要将 LoadedBehavior 设置为手动,只需将其保留为播放即可。
并重置您在 MediaEnded 上的媒体位置。
视频的新位置应大于零:
You don't even need to set LoadedBehavior as Manual just leave it Play.
And reset your media position on MediaEnded.
The new position of the video should be greater than zero:
我让它工作设置 UnloadedBehavior="Manual" 和以下代码
将位置设置为零不起作用......
I make it work setting the UnloadedBehavior="Manual" and the follwing code
Setting the position to Zero didnt work...
我认为你应该使用这段代码:
我希望这会有所帮助。
I think you should use this code :
I hope this will help.
您不必再次设置源。只需将媒体元素的位置设置为 media_ending 事件的开始您可能需要将 MediaElement.LoadedBehavior 设置为手动<强>编辑
我已经尝试加载带有REPEAT标签的asf文件并且它工作正常
但是我认为mediaelement的内置播放列表处理机制有一些缺陷。我建议遵循下面链接中提到的解决方法
http://blog.revolunet.com/index.php/general/wpf-mediaelement -asx-workaround
如果您有任何问题,请在此处发表评论
You don't have to set the source again.Just set the position of the mediaelement to the start on the media_ended eventYou may need to set MediaElement.LoadedBehavior to ManualEDIT
I have tried loading an asf file with the REPEAT tag and its working fine
But i think the inbuilt playlist handling mechanism of mediaelement has some flaws.I recommend following the workaround mentioned in the below link
http://blog.revolunet.com/index.php/general/wpf-mediaelement-asx-workaround
Post comment here if you have any problem