【问题标题】:How to run the MediaPlayer on repeat mode in C# WPF?如何在 C# WPF 中以重复模式运行 MediaPlayer?
【发布时间】:2014-06-20 13:41:27
【问题描述】:

我有一个MediaPlayer

public MediaPlayer backgroundMusicPlayer = new MediaPlayer ();

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

我应该如何实现这个?

这是我发现的:

歌曲结束时引发事件: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 ();
}

这可行,但我每次都需要打开文件。这是唯一的方法吗?

【问题讨论】:

  • 检查这个答案,让我们知道它是否适合您。 stackoverflow.com/questions/5975388/…
  • @Robert - 抱歉我太笨了,但是如何调用 Media_Ended 函数呢?我需要建立一些机制对吗?这应该工作
  • 好的我知道了,但是每次都要打开源文件。
  • 您只需要处理事件,插入歌曲并再次播放。

标签: c# wpf


【解决方案1】:

不要在 Media_Ended 处理程序的开始处重置 Source,而是尝试将 Position 值设置回开始位置。 Position 属性是 TimeSpan,因此您可能想要类似的东西。

private void Media_Ended(object sender, EventArgs e)
{
    media.Position = TimeSpan.Zero;
    media.Play();
}

编辑 1: 查找更多详情 here

【讨论】:

    猜你喜欢
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 2013-11-22
    • 2011-10-03
    • 2016-10-18
    相关资源
    最近更新 更多