2016-04-19 68 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? –

相關問題