2012-02-09 2 views
5

Каков правильный способ отключения MediaController приложением MediaPlayer?Каков правильный способ отключения MediaController?

Вы не можете сделать mediaController.setMediaPlayer(null) - это немедленно вызывает updatePausePlay, который разделяет нуль.

Вы не можете позвонить mediaPlayer.release(), так как MediaController будет вызывать MediaPlayer # getCurrentPosition и выдает исключение IllegalStateException после того, как был вызван release().

+0

попробуйте позвонить 'mediaPlayer.reset()' 'Перед mediaPlayer.release()' – Yahia

ответ

4

попробовать ниже фрагмент кода, в этом порядке

mediaController.hide(); 
mediaPlayer.stop(); 
mediaPlayer.release(); 
+0

Но _why_ вы думаете, что это правильный путь, чтобы остановить его, а не только что-то, что работает сейчас и провалится на следующей неделе? –

+0

Не уверен на этом, но вот мое предположение, почему это правильно. 'mediaController.hide()' останавливает отображение mediaController и, следовательно, от запроса 'mediaPlayer'. После того, как он больше не запрашивает «медиаплеер», вы можете закрыть его, остановив его, а затем отпустите его (возможно, вам не нужно сначала его останавливать, не попробовать). Я действительно не вижу способа, которым это может потерпеть неудачу в будущем, если вы не попытаетесь снова использовать тот же mediaController после того, как вы выпустили медиаплеер, не указав его на что-то новое. Это кажется мне правильным. – jp36

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