Android VideoView no reproduce videos secuenciales
Quiero reproducir 2 videos seguidos. El primer video siempre juega muy bien. Después de que termina, puede ver en el registro que establece la nueva URL de vídeo, pero SurfaceView lanza un error y el VideoView se congela con el último fotograma del primer vídeo. No pasa nada. Alguna idea ? Gracias !
LE: Sorprendentemente, el OnPreparedListener es llamado para el segundo video.
LE2: A veces el segundo video juega muy bien, a veces no lo hace … y no he cambiado una línea de código entre cuando funcionaba y cuando no. Es puramente aleatorio …
LE3: Solución rápida es agregar esta línea antes de configurar la URL del nuevo video:
mVideoView.setVisibility(View.GONE);
Código de OnCompletionListener:
setCurrentPlaybackUrl(); // sets mCurrentMediaUrl to the second video URL mVideoView.setVideoPath(mCurrentMediaUrl); mVideoView.start();
Esta es la salida de registro cuando el primer video finaliza la reproducción:
10-22 12:32:35.762: I/AwesomePlayer(126): setDataSource_l('https://xx/TestingVideo_lo.mp4') 10-22 12:32:35.762: E/BufferQueue(123): [SurfaceView] connect: already connected (cur=3, req=3) 10-22 12:32:35.762: E/MediaPlayerService(126): setVideoSurfaceTexture failed: -22 10-22 12:32:35.762: E/BufferQueue(123): [SurfaceView] connect: already connected (cur=3, req=3) 10-22 12:32:35.762: E/MediaPlayerService(126): setVideoSurfaceTexture failed: -22
Prueba el onCompletion(MediaPlayer mp)
, para agregar mp.stop()
y luego haz tus cosas.
EDIT: He intentado esto y está funcionando:
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { play_video(); } }); play_video();
Donde play_video
es el siguiente método:
void play_video() { Uri uri = Uri.parse(video_link); videoView.setVideoURI(uri); videoView.requestFocus(); videoView.setVisibility(View.VISIBLE); videoView.start(); }
La única diferencia es que he jugado el mismo video dos veces, no dos videos diferentes.