Tengo una aplicación con un VideoView, con el fin de hacer que el juego de video en un bucle utilizo un onCompletionListner para llamar setVideoPath() de nuevo, como esto:Android VideoView repetición
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer arg0) {
mVideoView.start();
}
});
mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
//I have a log statment here, so I can see that it is making it this far.
mp.reset(); // <--- I added this recently to try to fix the problem
mVideoView.setVideoPath(file.getAbsolutePath());
}
});
Esta configuración funciona bien en todos los dispositivos que he encontrado hasta ahora, nunca tuve ningún problema con que no se repita.
Sin embargo, el Motorola Xoom que estoy probando recientemente se actualizó a ICS. Ahora que está en ICS esto funcionará por un tiempo y hará un bucle en el video. Pero con el tiempo (he agregado un contador y algunos registros, no parece haber ningún patrón que indique cuántas veces se repite con éxito antes de detenerse) se detendrá el bucle y se sentará en un fotograma congelado del primer fotograma de la película.
¿Alguien sabe lo que podría hacer que esto no vuelva a funcionar correctamente? O ¿alguien sabe de otra manera de hacer que un VideoView se repita correctamente y funcione bajo ICS?
¿Qué es mp en tu código? –
@jeraldov 'mp' es el objeto MediaPlayer que pasa como parámetro del método onCompletion(). – FoamyGuy