Windows Phone 7中的媒体播放器

3
我正在使用Windows Phone 7中的媒体播放器来播放手机歌曲集合中的音乐。但当它播放音乐时,会出现异常并显示以下错误消息:

FrameworkDispatcher.Update未被调用。定期调用FrameworkDispatcher.Update对于使“fire and forget”声音效果和框架事件正常工作是必要的。

我应该如何修改我的代码?

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]);
    }
}
2个回答

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]);
}

有没有办法确定歌曲何时结束,然后重复播放歌曲? - beny lim
使用MediaPlayer.MediaStateChanged事件来获取有关播放状态更改的通知,然后可以使用MediaPlayer.State来获取当前状态,另一种选择是将MediaPlayer.IsRepeating设置为true,这样您就不需要监视状态更改。 - Waleed

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接