2013-11-01 5 views
0

Я работаю над приложением, которое контактирует с медиа-сервером. Итак, у меня есть массив, который заполняет 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: 1MEDIA_ERROR_UNKNOWN

Extra: -114 (я не нашел каких-либо документы об этой ошибке)

Может ли один помочь мне Для решения этой проблемы?

ответ

0

Не могли бы вы позвонить: mediaPlayer.release(), когда вы решите переключиться на другую песню.

+0

Вызов 'release()' отправит игрока в состояние, в котором нельзя вызывать другие методы. Ему нужно будет воссоздать «MediaPlayer» в этот момент (это не ужасная идея, но, вероятно, не обязательно). – Dave

Смежные вопросы