【问题标题】:Playing MediaElements one after another UWP一个接一个地播放 MediaElements UWP
【发布时间】:2016-08-12 00:58:55
【问题描述】:

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

我的代码:

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

【问题讨论】:

  • 场景7中有Sample一个接一个播放视频,使用MediaPlaybackList

标签: c# windows win-universal-app


【解决方案1】:

您可以使用MediaEnded 事件。不是一种优雅的方式,但会完成这项工作。例如

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();

【讨论】:

  • 出了点问题,因为它同时播放它们。
  • 我检查了 MediaEnded 事件没有触发,不知道为什么。
  • 我已经更新了代码。你在后面的代码中定义了MediaElements 吗?
  • 是的,除了这个列表之外,我还有其他 MediaElements。我没有注意到您的代码有任何变化。
  • 忘了告诉你,一旦你分配了SourceMediaElement 属性,它就会自动启动。对于除第一个之外的每个MediaElement,您需要将AutoPlay 设置为false
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-29
  • 2015-02-06
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多