Provo a riprodurre più video in loop utilizzando MediaPlayer (Android ICS) e cambio i video ogni volta che oncompletion() chiama.setVideoSurfaceTexture non riuscito: -22 in mediaplayer
Funziona benissimo, ma dopo un tempo casuale il blocco dell'applicazione e ottengo l'errore:
[SurfaceView] Connect: già collegato (corr = 3, req = 3) setVideoSurfaceTexture non riuscita: -22
Quando questo errore accadere, internamente chiamare il giocatore di reset
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;
}
come da mio codice ottengo la notifica per onprepared() e inizio a giocare.
In realtà non c'è riproduzione a causa di questo errore.
Così provo a reimpostare il mediaplayer e chiamare prepare() quando si è verificato questo problema e il lettore multimediale non sta riproducendo, ma non sono in grado di catturare questo bug (mp.isPlaying() -> true (bec'z chiama start() in onprepared()).
provo la logica come
onprepared() {
mp.start();
if (pbm : [SurfaceView] connect : already connected (cur=3, req=3)
setVideoSurfaceTexture failed : -22 ) {
reset the mediaplayer source and call prepare
}
}
come posso trovare questo bug per riavviare il mediaplayer di nuovo?