背景如何將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文件?