Videoview Pausar y reanudar

Soy nuevo al desarrollo de androide y estoy programando un juego. Mi juego tiene cutsceens que juegan antes de cada nivel comienza, cutsceens que se hacen a través de videoview. Mi problema es que, después de una pausa en la aplicación, la recesión comienza de nuevo cuando se reanuda.

@Override public void onPause() { super.onPause(); video.pause(); } @Override public void onResume() { super.onResume(); video.resume(); } 

Nuestro problema es que el video no se reanuda desde donde lo detuvimos, sino desde el principio.

Puedes usar esto

 @Override public void onPause() { Log.d(TAG, "onPause called"); super.onPause(); stopPosition = videoView.getCurrentPosition(); //stopPosition is an int videoView.pause(); } @Override public void onResume() { super.onResume(); Log.d(TAG, "onResume called"); videoView.seekTo(stopPosition); videoView.start(); //Or use resume() if it doesn't work. I'm not sure } 

Puesto original

En lugar de resume() , utilice start() nuevo.
Iniciará la reproducción desde el punto en el que hizo una pausa en el video.

No debe utilizar video.pause (), video.resume (), porque cuando lo llame, los datos de almacenamiento temporal se perderán. Esa también es la razón POR QUÉ VideoView se reproduce en BEGINNING cuando llama a video.resume (). Ver: VideoView onResume pierde la parte almacenada en el buffer del video

Solución:

 VideoView videoView; MediaPlayer mp; videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { this.mp = mp; } }); public void pause(){ //NOT videoview.pause(); Needn't save Stop position if (mp != null){ mp.pause(); } } public void resume(){ //NOT videoview.resume(); if (mp != null){ mp.start(); //Video will begin where it stopped } } 

En OnPause puede obtener la posición actual.

 length=mVideoView.getCurrentPosition(); 

Y el valor de longitud de uso en OnResume ().

 mVideoView.seekTo(length); mVideoView.start() 

funcionando bien .

Por favor, intente debajo de código que funcionará absolutamente bien

  @Override public void onPause() { super.onPause(); stopPosition = videoView.getCurrentPosition(); //stopPosition is an int if (videoView.isPlaying()) videoView.pause(); } @Override public void onResume() { super.onResume(); if (videoView != null) { videoView.seekTo(stopPosition); } } 

Por favor asegúrese de que la línea inferior se menciona en su Manifest.xml

 <activity android:name="<Video Play Activity Name Here>" android:configChanges="orientation|keyboardHidden|screenSize" android:screenOrientation="landscape" ></activity> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.