Intento reproducir varios videos en loop utilizando MediaPlayer (Android ICS) y cambio los videos cada vez que se llama oncompletion().setVideoSurfaceTexture failed: -22 en mediaplayer
Funciona muy bien pero después de un tiempo aleatorio la congelación de la aplicación y me sale el error:
[SurfaceView] Conectar: ya conectado (act = 3, req = 3) setVideoSurfaceTexture falló: -22
Cuando ocurre este error, internamente se llama el jugador de reposición
ref: mediaplayer.cpp
if (err != OK) {
LOGE("setVideoSurfaceTexture failed: %d", err);
// Note that we must do the reset before disconnecting from the ANW.
// Otherwise queue/dequeue calls could be made on the disconnected
// ANW, which may result in errors.
reset();
disconnectNativeWindow();
return err;
}
según mi código, recibo la notificación de onprepared() y empiezo a jugar.
Actualmente no hay reproducción debido a este error.
Así que intento restablecer el reproductor y llamar a prepare() cuando ocurrió este problema y el reproductor multimedia no se reproduce, pero no puedo capturar este error (mp.isPlaying() -> true (bec'z called start)() en onprepared()).
i tratar la lógica como
onprepared() {
mp.start();
if (pbm : [SurfaceView] connect : already connected (cur=3, req=3)
setVideoSurfaceTexture failed : -22 ) {
reset the mediaplayer source and call prepare
}
}
¿Cómo puedo localizar este error para reiniciar el reproductor multimedia de nuevo?