2011-07-24 70 views
3

我正在使用Windows Phone 7中的媒體播放器播放手機歌曲集合中的音樂。但是當播放音樂時,它們將是一個例外,並且錯誤是Windows Phone 7中的媒體播放器

FrameworkDispatcher.Update尚未被調用。常規FrameworkDispatcher.Update調用對於火災是必要的,並且忘記聲音效果和框架事件以正確運行。

我該如何去修改我的代碼?

private void songBtn_Click(object sender, RoutedEventArgs e) 
{ 
    using (var ml = new MediaLibrary()) 
    { 
     foreach (var song in ml.Songs) 
     { 
      System.Diagnostics.Debug.WriteLine(song.Artist + " " + song.Name); 
      MessageBox.Show(song.Artist + " " + song.Name); 
     } 
     MediaPlayer.Play(ml.Songs[0]); 
    } 
} 

回答

6

你必須調用

FrameworkDispatcher.Update() 

每當你做出一個XNA媒體庫 一個電話讓你的代碼看起來應該是這樣

using (var ml = new MediaLibrary()) 
{ 

    foreach (var song in ml.Songs) 
    { 
     System.Diagnostics.Debug.WriteLine(song.Artist + " " + song.Name); 
     MessageBox.Show(song.Artist + " " + song.Name); 

    } 
    FrameworkDispatcher.Update(); 
    MediaPlayer.Play(ml.Songs[0]); 
} 
+0

感謝瓦利德幫助解決 –

+0

是否有辦法當歌曲結束然後重複播放歌曲的時候會感到懊惱? –

+0

使用MediaPlayer.MediaStateChanged事件來獲取有關播放狀態更改的通知,然後可以使用MediaPlayer.State獲取當前狀態,另一種方法是將MediaPlayer.IsRepeating設置爲true,以便不需要監視狀態更改 – Waleed