MediaPlayer.ActiveSongChanged Event - PullRequest
       3

MediaPlayer.ActiveSongChanged Event

1 голос
/ 22 декабря 2011

Я пишу довольно маленькое и в целом простое приложение и хочу посмотреть, что играет zune или другие приложения, я не играю мультимедиа в своем приложении.

Так что я подумал, что буду использоватьсобытие MediaPlayer.ActiveSongChanged, но когда событие вызывается, оно вылетает на главном экране моего приложения.

(...)
public MainPage()
{
    //other initialization
    MediaPlayer.ActiveSongChanged += new EventHandler<EventArgs>(songchanged);
}

void songchanged(object sender, EventArgs e)
{
    MessageBox.Show("Song changed");
}
(...)

Это довольно похоже на то, как я это делал семплов и код других людей, и я не знаю, что я делаю неправильно. Я также попробовал просто MediaPlayer.ActiveSongChanged += songchanged с тем же результатом.Код внутри метода songloaded не имеет значения, даже если он пуст, он все равно падает.Нужно ли реализовывать что-то еще, чтобы получить правильный обработчик событий, который вызывает мой метод?

Какой-то другой тестовый код, который я вставил в кнопку, также вызывает случайные сбои при изменении песни ...

private void button1_Click(object sender, RoutedEventArgs e)
{
    if (MediaPlayer.Queue != null)
    {
        double length = MediaPlayer.Queue.ActiveSong.Duration.TotalSeconds;

        double pos = MediaPlayer.PlayPosition.TotalSeconds;

        if (pos != 0 && MediaPlayer.State == MediaState.Playing)
        {
            progressBar1.Value = 100 * pos / length;
        }
    }
}

Работает нормально и при нажатии обновляет индикатор выполнения текущей песни, но если я изменю песню после нажатия кнопки, приложение также вылетает на домашний экран!Иногда прямо при первой смене песни, иногда я могу поменять несколько песен до того, как это произойдет.Это без какого-либо предыдущего кода, и кнопка - единственное, что взаимодействует с индикатором выполнения.

Поскольку в эмуляторе нет zune, я должен протестировать это приложение на своем устройстве - к сожалению, я не могу '• Отладка на моем устройстве (оно разблокировано, зарегистрировано и приложения развертываются, но не запускаются для отладки. Они запускаются нормально вручную, но я не могу отладить), поэтому я понятия не имею, что здесь на самом деле происходит не так.

1 Ответ

1 голос
/ 22 декабря 2011

Я предполагаю, что вы создаете приложение Silvelight. Реализовали ли вы сервис FrameworkDispatcher.Update ? Вы должны сделать это, и вот как вы можете выполнить эту задачу .

Проблема отладки: может произойти, если у вас есть несколько проектов в одном решении, некоторые из которых не WP7 (например, приложения Windows).

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