2016-04-19 34 views
1

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

我的代码:

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

有一个[示例](https://github.com /微软/ Windows的通用样本/树/ e13cf5dca497ad661 706d150a154830666913be4/Samples/VideoPlayback)在Scenario7中使用'MediaPlaybackList'继续播放视频。 –

回答

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

有些事情是错误的,因为它同时播放它们。 –

+0

我检查了MediaEnded事件没有开火,不知道为什么。 –

+0

我更新了代码。你是否在后面的代码中定义了MediaElement? –

相关问题