我正在WPF中播放视频。我希望它能循环播放,所以我做的是当mediaended事件触发时,我播放了视频。所以这会给我一个循环。问题是为什么我必须再次创建新源?为什么我不能只叫“玩”?
出于某种原因,我不想在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文件中?
而不是在Media_Ended处理程序的开始处重置Source,而是尝试将Position值重新设置回开始位置。 Position属性是一个TimeSpan,因此您可能想要类似...的内容。
private void Media_Ended(object sender, EventArgs e)
{
media.Position = TimeSpan.Zero;
media.Play();
}
您甚至不需要将LoadedBehavior设置为Manual
我通过设置UnloadedBehavior =“ Manual”和下面的代码来使它正常工作
我认为您应该使用此代码:
您不必再次设置源。只需将mediaelement的位置设置为media_ended事件的开始位置