У меня есть действие с 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 "подготавливается".