我有一个列表,其中包含我想要一个接一个播放的MediaElements
,但它们正在同时播放。实现这一目标的最有效方法是什么?
我的代码:
foreach (MediaElement m in MediaList)
{
m.Play();
}
答案 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();