Lecteur multimédia dans Windows Phone 7

J’utilise le lecteur multimédia de Windows Phone 7 pour lire la musique de la collection de chansons du téléphone. Mais quand il joue la musique ils seront une exception et l’erreur est de dire

FrameworkDispatcher.Update n’a pas été appelé. Les appels réguliers à FrameworkDispatcher.Update sont nécessaires pour déclencher et ignorer les effets sonores et les événements-frameworks pour fonctionner correctement.

Comment devrais-je modifier mon 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]); } } 

Vous devez appeler

 FrameworkDispatcher.Update() 

chaque fois que vous appelez une bibliothèque multimédia XNA, votre code doit alors ressembler à ceci

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

L’erreur se produit car vous utilisez XNA Framework dans une application Windows Phone 7 normale.

Si vous lisez la description de l’erreur, vous obtiendrez ce lien vers MSDN: Activer les événements XNA Framework dans les applications Windows Phone , qui explique précisément quoi faire.