Я работаю над приложением, которое контактирует с медиа-сервером. Итак, у меня есть массив, который заполняет URL-адреса медиа. Тип носителя: mp3
.Ошибка MediaPlayer (1, -114)
У меня есть ListView
, что каждая строка указывает на ячейку массива. При нажатии на событие, полученное в каждой строке, оно должно запускаться setDataSource
, prepare
и start
MediaPlayer. Когда в первый раз, я нажал на одну строку, все хорошо и медиа-потоки успешно. Но когда я щелкнул другой, пока играет последний носитель, появляется error (1,-114)
.
на основе MediaPlayer, я знаю setDataSource
должен быть запущен в Idle
состоянии MediaPlayer, Таким образом, перед установкой источника данных, я призываю reset
перейти к Idle
состояния.
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(getMusicUrl());
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mediaPlayer.prepareAsync();
я реализую OnErrorListener
, сведения об ошибке выглядит следующим образом:
What: 1
MEDIA_ERROR_UNKNOWN
Extra: -114
(я не нашел каких-либо документы об этой ошибке)
Может ли один помочь мне Для решения этой проблемы?
Вызов 'release()' отправит игрока в состояние, в котором нельзя вызывать другие методы. Ему нужно будет воссоздать «MediaPlayer» в этот момент (это не ужасная идея, но, вероятно, не обязательно). – Dave