Psy*_*ryo 8 c# wpf events mediaelement event-handling
我在WPF播放一个视频.我希望它循环播放所以我所做的是当媒体事件发生时,我播放我的视频.所以这会给我一个循环.问题是为什么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();
}
Run Code Online (Sandbox Code Playgroud)
或者有没有一种正确的方法来循环NOT在XAML中,但在这里.cs文件?
Ian*_*anR 16
不要在Media_Ended处理程序的开头重置Source,而是尝试将Position值设置回起始位置.Position属性是TimeSpan,所以你可能想要像......
private void Media_Ended(object sender, EventArgs e)
{
media.Position = TimeSpan.Zero;
media.Play();
}
Run Code Online (Sandbox Code Playgroud)
您甚至不需要将LoadedBehavior设置为手动,只需将其保留为Play.
在MediaEnded活动中,您应该设置视频的新位置,该位置不等于零:
private void MediaElement_MediaEnded(object sender, RoutedEventArgs e)
{
media.Position = TimeSpan.FromMilliseconds(1);
}
Run Code Online (Sandbox Code Playgroud)
我让它工作设置UnloadedBehavior ="手动"和以下代码
private void gifAnimation_MediaEnded(object sender, RoutedEventArgs e)
{
gifAnimation.Position = new TimeSpan(0,0,1);
gifAnimation.Play();
}
Run Code Online (Sandbox Code Playgroud)
将位置设置为零无效...
归档时间: |
|
查看次数: |
29849 次 |
最近记录: |