viral trata que moto hoy android media-player

android - trata - video viral de la moto



Oyente(o manejador) para acabado de video (5)

Implementé el siguiente código para probar la reproducción de un video desde un servidor web remoto a través de su URL.

videoView = (VideoView)this.findViewById(R.id.videoView); MediaController mc = new MediaController(this); videoView.setMediaController(mc); videoView.setVideoURI(Uri.parse("http://sayedhashimi.com/downloads/android/movie.mp4")); videoView.requestFocus();

El código funciona bien, incluso en el emulador de Android. Solo me gustaría saber si hay algún oyente (o controlador) para detectar el final del video que se está reproduciendo.

Actualizar:

Tengo el siguiente código ahora:

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.player); videoView = (VideoView)this.findViewById(R.id.videoView); playVideo(); // video finish listener videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { // not playVideo // playVideo(); mp.start(); } }); } public void playVideo() { MediaController mc = new MediaController(this); videoView.setMediaController(mc); videoView.setVideoURI(Uri.parse("http://sayedhashimi.com/downloads/android/movie.mp4")); videoView.requestFocus(); }

Cuando se acaba de llamar a la actividad, el video funciona bien, pero cuando termina el video, me gustaría que se reproduzca nuevamente, lo cual no está ocurriendo.


Asegúrese de estar utilizando el reproductor en el hilo principal, parece que la devolución de llamada solo funciona en el hilo principal.


Parece que estás buscando

setOnCompletionListener(MediaPlayer.OnCompletionListener l)

Se puede encontrar una explicación más detallada here

EDITAR

This muestra una solución donde se llama a la reproducción una vez completada usando VideoView , MediaController y setOnCompletionListener() .


aquí está mi fragmento funcional de código:

mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { public void onCompletion(MediaPlayer mp) { // Do whatever u need to do here } });


en su oyente onCompletion, intente usar videoView.start (); en lugar de mp.start ();


vidView=(VideoView)findViewById(R.id.vidView); vidView.setMediaController(null); vidView.setVideoPath( "/mnt/external_sd/somerandommovie.3gp" ); vidView.start(); vidView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { vidView.start(); } });

Descubrí que el oyente estaba disparando, el problema era que mp.start () no parecía hacer nada, por lo que llamar de nuevo al objeto original parece estar funcionando bien.