如何在C#WPF中以重复模式运行MediaPlayer?

use*_*029 4 c# wpf

我有一个 MediaPlayer

public MediaPlayer backgroundMusicPlayer = new MediaPlayer ();
Run Code Online (Sandbox Code Playgroud)

现在,因为它的背景音乐,我想在它结束后重复这首歌.

我该如何实现呢?

这是我发现的:

歌曲结束时会引发一个事件: backgroundMusicPlayer.MediaEnded

我不知道该怎么办呢?我是C#的新手和一般的编程.

编辑:

public void PlaybackMusic ( )
{
    if ( backgroundMusicFilePath != null )
    {
         backgroundMusicPlayer.Open (new Uri (backgroundMusicFilePath));
         backgroundMusicPlayer.MediaEnded += new EventHandler (Media_Ended);
         backgroundMusicPlayer.Play ();

         return;
    }
}

private void Media_Ended ( object sender, EventArgs e )
{
    backgroundMusicPlayer.Open (new Uri (backgroundMusicFilePath));
    backgroundMusicPlayer.Play ();
}
Run Code Online (Sandbox Code Playgroud)

这有效,但我每次都需要打开文件.这是唯一的方法吗?

Rob*_*don 9

不要在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)

编辑1:在此处查找更多详细信息