Reproducción de vídeo desde el estado de pausa en VideoView

Para videoview personalizado tuve que anular el MediaController (para cambiar el diseño de los botones y conectar a los botones de pausa / reproducir un selector). La situación es la siguiente: poner el video en pausa y girar la aplicación, y de nuevo restaurado, el video comienza a reproducirse, y no desde el punto en que se suspendió, y por lo tanto se planteó la pregunta: cómo hacer que el video comience a reproducir Desde el lugar, donde fue detenido? ¿Qué necesito cambiar en la VideoActivity?

public class VideoActivity extends Activity { VideoView videoView; VkMediaController mc; private static final String CURRENT = "duration"; private static final String URL = "url"; private Uri mURI; private int mCurrentPosition = -1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.video_view_player); videoView = (VideoView) findViewById(R.id.videoViewplayer); mc = new VkMediaController(this); mURI = getIntent().getData(); if (savedInstanceState != null) { mURI = Uri.parse(savedInstanceState.getString(URL)); mCurrentPosition = savedInstanceState.getInt(CURRENT); } videoView.setMediaController(mc); videoView.setVideoURI(mURI); videoView.requestFocus(); } @Override protected void onStart() { super.onStart(); videoView.start(); if (mCurrentPosition != -1) { videoView.seekTo(mCurrentPosition); } } @Override public void onSaveInstanceState(Bundle outState) { outState.putInt(CURRENT, videoView.getCurrentPosition()); outState.putString(URL, mURI.toString()); super.onSaveInstanceState(outState); } 

}

Creo que el problema es que videoView.getCurrentPosition() siempre devolverá 0 al llamar dentro de onSaveInstanceState(Bundle outState) , porque en ese momento el video ya se restableció, así que llame a videoView.getCurrentPosition() cuando onPause() , esto le devolverá El valor deseado.

Yo tuve el mismo problema. Pensé que lo hice todo bien, pero no funcionó. Entonces apenas cambié la orden así que primero llamo VideoView.seekTo() y entonces VideoView.start() . Eso funciono. También tengo VideoView.requestFocus() en allí pero no sé si eso importa.

 videoPlayer.requestFocus(); videoPlayer.seekTo(position); videoPlayer.start(); 

Así que si está seguro de que la variable de posición tiene el valor correcto, esta podría ser su respuesta. Es posible que no pueda buscar cuando el video no esté cargado. Implementar onPreparedListener como este:

 public class VideoActivity extends Activity implements OnPreparedListener { VideoView videoPlayer; int position; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if(savedInstanceState!=null){ position=savedInstanceState.getInt("pos") } // setting up the videoview setContentView(R.layout.activity_video); getIntent().getExtras().getString("url"); Uri videouri = Uri.parse(getIntent().getExtras().getString("url")); videoPlayer = (VideoView) findViewById(R.id.videoView); videoPlayer.setOnPreparedListener(this); videoPlayer.setKeepScreenOn(true); videoPlayer.setVideoURI(videouri); } /** * Start the plaback when the video is loaded * * @param mp * @see android.media.MediaPlayer.OnPreparedListener#onPrepared(android.media.MediaPlayer) */ public void onPrepared(MediaPlayer mp) { //this is a TextView infront of the VideoView which tells the User the Video is loading- hide that findViewById(R.id.tv_video_load).setVisibility(View.GONE); videoPlayer.requestFocus(); videoPlayer.seekTo(position) videoPlayer.start(); } } 
  • Reproducción de archivos de vídeo cifrados mediante VideoView
  • ¿Por qué mi aplicación Android dice "No se puede reproducir el vídeo" después de la reproducción?
  • VideoView: Evitar el flash negro de pantalla completa
  • Android: VideoView dentro de Fragmento sólo reproduce audio, no muestra vídeo
  • Llamar a MediaPlayer.PrepareAsync de VideoView
  • Cómo crear círculo o videoView redondo en android?
  • VideoView flash negro antes y después de jugar
  • Cómo configurar la imagen de vista previa en videoview antes de jugar
  • Reproducir vídeo en parte de la pantalla
  • La vista de video no reproduce el video de youtube
  • Mostrar y ocultar un botón de reproducción sobre un VideoView en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.