一个接一个地播放MediaElements UWP

时间:2016-04-19 17:23:17

标签: c# windows win-universal-app

我有一个列表,其中包含我想要一个接一个播放的MediaElements,但它们正在同时播放。实现这一目标的最有效方法是什么?

我的代码:

  foreach (MediaElement m in MediaList)
                {
                    m.Play();
                }

1 个答案:

答案 0 :(得分:1)

您可以使用MediaEnded活动。不是一种优雅的方式,但会完成这项工作。 E.g。

foreach (var m in MediaList)
{
    m.MediaEnded += MediaElement_MediaEnded;
}

事件处理程序:

private void MediaElement_MediaEnded(object sender, RoutedEventArgs e)
{
      // Play next MediaElement from list
      if (currentMediaIndex < MediaList.Count - 1)
        {
            MediaList[currentMediaIndex + 1].Play();
            currentMediaIndex++;
        }

        // Or start from 0
        else
        {
            currentMediaIndex = 0;
            MediaList[currentMediaIndex].Play();
        }
}

定义

int currentMediaIndex = 0;

并播放第一个MediaElement

MediaList[0].Play();