El usuario se toca rápidamente en MediaController. El error sólo ocurre en Nexus 4.

En mi actividad tengo un VideoView que debe mostrar un MediaController en el tacto. Si el usuario toca rápidamente en el Controlador mientras VideoView no está siguiendo, después de que el usuario presione el botón Atrás, entonces mi aplicación se quedará atascada.

setContentView(R.layout.activity_play_video_fullscreen); videoView = (VideoView) findViewById(R.id.video_view); urlString = getIntent().getStringExtra(EXTRA_URL); videoView.setVideoURI(Uri.parse(urlString)); videoView.setOnPreparedListener(new OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { // video ready to play - hide progress bar ProgressBar pb = (ProgressBar)findViewById(R.id.progress_bar); pb.setVisibility(ProgressBar.INVISIBLE); } }); videoView.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { // video finished - terminate this activity AxUtils.axLog(AxUtils.eDbgLogError, AxUtils.eDbgLogGroupDialer, String.format("PlayVideoFullsreenActivity.videoView.onCompletion(): Fullscreen video playback completed.\n")); finish(); } }); // install our own error handler videoView.setOnErrorListener(new OnErrorListener() { @Override public boolean onError(MediaPlayer mp, int what, int extra) { AxUtils.axLog(AxUtils.eDbgLogError, AxUtils.eDbgLogGroupDialer, String.format("PlayVideoFullsreenActivity.videoView.onError(): Playback failed. what=%d(%s) extra=%d(%s)\n", what, what_toString(what), extra, extra_toString(extra))); String reason; if (what == MediaPlayer.MEDIA_ERROR_SERVER_DIED) { reason = "Server connection lost."; } else { reason = extra_toString(extra); } String message = String.format("Playback Failed. %s", reason); Toast.makeText(PlayVideoFullscreenActivity.this.getApplicationContext(), message, Toast.LENGTH_SHORT).show(); finish(); return true; } }); // add playback controls mediaController = new MediaController(this); mediaController.setAnchorView(videoView.getRootView()); videoView.setMediaController(mediaController); 

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.