2011-07-24 105 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

相关问题