Search code examples
c#windows-phone-7xna

Media player in Windows Phone 7


I am using the media player in Windows Phone 7 to play the music in the phone song collection. But when it play the music they will be an exception and the error is stating

FrameworkDispatcher.Update has not been called. Regular FrameworkDispatcher.Update calls are necessary for fire and forget sound effects and framework events to function correctly.

How should i go about modifying my code?

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

Solution

  • You have to call

    FrameworkDispatcher.Update()
    

    whenever you make a call to an XNA media library so your code should look like this

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