MediaPlayer: стоп вызывается в состоянии 4

У меня есть действие с VideoView, которое асинхронно готовит видео:

Uri mUri = "uri to streaming video"
VideoView mVideoView = (VideoView) rootView.findViewById(R.id.videoView);
mVideoView.setOnErrorListener(this);
mVideoView.setOnCompletionListener(this);
mVideoView.setVideoURI(mUri);
mVideoView.setMediaController(null);

mVideoView.setOnPreparedListener(this);

Пока он «подготавливается», я показываю ProgressDialog... если я нажму кнопку «Назад» в этом состоянии, в ADB будет напечатана следующая ошибка, и действие тихо рухнет с коротким ожиданием на черном экране:

E/MediaPlayer( 2204): stop called in state 4
E/MediaPlayer( 2204): error (-38, 0) 
W/ActivityManager(   59): Activity pause timeout for HistoryRecord{45080368 com.myapp.VideoPlayerActivity}

Каков наилучший способ остановить VideoView от подготовки видео, чтобы вы могли выйти из действия?

Примечание. У меня нет доступа к фактическому объекту MediaPlayer, пока не будет вызван обратный вызов для подготавливаемого видео:

@Override
public void onPrepared(MediaPlayer player)

... чего не произошло, пока MediaPlayer/VideoView "подготавливается".


person NPike    schedule 10.01.2012    source источник
comment
NPike Я страдаю от той же проблемы. ты решил проблему? тогда как ? Пожалуйста, поделитесь знаниями.   -  person Rana.S    schedule 23.04.2012
comment
Кто-нибудь нашел способ исправить это? Я знаю, что ветка старая, но у меня точно такая же проблема.   -  person nawlrus    schedule 03.09.2013


Ответы (2)


Я не проверял это сам, но вы должны быть в состоянии reset() MediaPlayer, когда вы находитесь в состоянии подготовки.

person tidbeck    schedule 10.01.2012
comment
невозможно получить ссылку на MediaPlayer до того, как видео будет готово, поэтому невозможно сбросить Media Player - person user3542552; 10.06.2015

Попробуйте вызвать MediaPlayer.prepare() перед выполнением MediaPlayer.stop() при нажатии кнопки «Назад» (реализуйте метод активности onPause или onStop)

person frayab    schedule 10.01.2012
comment
невозможно получить ссылку на MediaPlayer до того, как видео будет готово, поэтому невозможно вызвать MediaPlayer.prepare() - person user3542552; 10.06.2015