Медиаплеер в Windows Phone 7 - PullRequest
3 голосов
/ 24 июля 2011

Я использую медиаплеер в 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]);
    }
}

Ответы [ 2 ]

6 голосов
/ 24 июля 2011

Вы должны позвонить

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]);
}
2 голосов
/ 24 июля 2011

Ошибка происходит, потому что вы используете XNA Framework в обычном приложении Windows Phone 7.

Если вы прочитаете описание ошибки, вы получите эту ссылку на MSDN: Включить XNA FrameworkСобытия в приложениях Windows Phone , в которых подробно объясняется, что делать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...