Я пишу довольно маленькое и в целом простое приложение и хочу посмотреть, что играет 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, я должен протестировать это приложение на своем устройстве - к сожалению, я не могу '• Отладка на моем устройстве (оно разблокировано, зарегистрировано и приложения развертываются, но не запускаются для отладки. Они запускаются нормально вручную, но я не могу отладить), поэтому я понятия не имею, что здесь на самом деле происходит не так.