背景如何将mp3文件添加到MediaPlayer.Queue,或以其他方式在Windows Phone上播放mp3文件列表?
我有一个包含我的设备,存储在/Resources/raw
上.mp3文件的文件夹。在某些情况下,我需要依次播放这些文件中的一部分。
我试图做到以下几点:
foreach (var track in _tracks)
{
var name = track.Item1;
var uri = new Uri(string.Format("{0}/{1}", "/Resources/raw", name), UriKind.Relative);
var song = Song.FromUri(name, uri);
FrameworkDispatcher.Update();
// only the last track plays because the foreach loop is too fast
MediaPlayer.Play(song);
}
不幸的是,这是行不通的,因为MediaPlayer.Play()
播放歌曲在一个单独的线程和foreach
循环只是触发每个人一样快,我的处理器让它。因此,它只能播放最后一首歌曲。
我试着添加一个延迟,例如在Play()的每次调用之前,它们都不起作用。
我可以看到MediaPlayer
有一个Queue
属性和MoveNext()
方法,播放队列中的下一首歌曲。但是,我无法弄清楚如何将文件列表添加到队列中。
问题
我怎样才能得到歌曲成队列,这样我可以顺序播放呢?这是达到我需要的结果的最佳方式吗?如果不是,我应该怎么做顺序播放mp3文件?