Usando seekTo
da un ligero efeect parpadeo mientras reanudar el video. Un mejor enfoque sería usar los métodos pause()
y start()
de la clase MediaPlayer
en lugar de utilizar los métodos del VideoView
. El método start()
de VideoView
reinicia el video desde el principio, pero el método start()
de MediaPlayer
reanuda el video si el método pause()
se había llamado previamente.
Esto es lo que dice el doc androide oficial
pública void start()
añadido en el nivel API 1 Inicia o reanuda la reproducción. Si la reproducción tenía previamente en pausa, la reproducción continuará desde donde estaba en pausa. Si la reproducción se detuvo o nunca se inició antes, la reproducción de comenzará desde el principio.
que pueda obtener el MediaPlayer
asociado con un VideoView
en OnPreparedListener
de VideoView
.
public class MainActivity extends Activity {
private MediaPlayer mMediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
VideoView videoView = (VideoView) findViewById(R.id.videoView1);
videoView.setVideoPath(path);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mMediaPlayer = mp;
}
});
}
}
Entonces posteriores pause()
y resume()
métodos pueden ser llamados en MediaPlayer
objeto mismo.
//To pause the video
mMediaPlayer.pause();
//To resume the video
mMediaPlayer.start();
Solución muy simple pero eficiente. ¡Espero eso ayude!
puede almacenar su 'stopPosition' en el outState durante onSaveInstanceState (Bundle outState), que puede recogerlo en sus actividades usando onCreate (Bundle savedInstanceState). – Entreco