studio reproductor reproducir para musica insertar fuente example ejemplo como codigo clase android playback mediacontroller

reproductor - videoview android studio ejemplo



Evento para el estado de reproducción de VideoView o reproducción/pausa de MediaController (2)

Parece que no puedo encontrar un evento que escuche el estado de reproducción. Estoy principalmente interesado en el estado de play/pause . Estoy usando MediaController que tiene un botón Play/Pause , pero tengo un botón secundario que también controla Play/Pause . Al usar mi botón personalizado, puedo play/pause , pero si play/pause usando el botón de play/pause MediaController , actualmente no tengo forma de cambiar la imagen en mi botón de play/pause para reproducir o pausar.

¿Hay un evento que no conozco para poder trabajar durante la reproducción / pausa?

Esta es una pregunta muy similar: cómo detectar un evento cuando se hace clic en el botón de pausa / reproducción en MediaController



Si está utilizando el MediaController en combinación con un VideoView , debería ser relativamente fácil extender este último y agregarle su propio oyente.

El VideoView personalizado se vería así en su forma más básica:

public class CustomVideoView extends VideoView { private PlayPauseListener mListener; public CustomVideoView(Context context) { super(context); } public CustomVideoView(Context context, AttributeSet attrs) { super(context, attrs); } public CustomVideoView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public void setPlayPauseListener(PlayPauseListener listener) { mListener = listener; } @Override public void pause() { super.pause(); if (mListener != null) { mListener.onPause(); } } @Override public void start() { super.start(); if (mListener != null) { mListener.onPlay(); } } public static interface PlayPauseListener { void onPlay(); void onPause(); } }

VideoView uso es idéntico al uso de un VideoView normal, con la única diferencia de que ahora podemos conectar a nuestro propio oyente.

// Some other code above... CustomVideoView cVideoView = (CustomVideoView) findViewById(R.id.custom_videoview); cVideoView.setPlayPauseListener(new CustomVideoView.PlayPauseListener() { @Override public void onPlay() { System.out.println("Play!"); } @Override public void onPause() { System.out.println("Pause!"); } }); cVideoView.setMediaController(new MediaController(this)); cVideoView.setVideoURI(...); // or cVideoView.setVideoPath(...); // Some other code below...

Finalmente, también puede declararlo en su diseño xml e inflarlo (como se muestra arriba) - solo asegúrese de usar <package_name>.CustomVideoView . Ejemplo:

<mh.so.CustomVideoView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/custom_videoview" />