Cómo integrar vlc en el sistema Android
public class EventManager {
/*
* Asegúrese de suscribirse también a los eventos que necesita en JNI.
*/
/public static final int MediaMetaChanged = 0;
/public static final int MediaSubItemAdded = 1; static final int MediaDurationChanged = 2;
//public static final int MediaParsedChanged = 3;
//public static final int MediaFreed = 4; public static final int MediaStateChanged = 5;
//public static final int MediaPlayerMediaChanged = 0x100;
//public static final int MediaPlayerNothingSpecial = 0x101; /public static final int MediaPlayerOpening = 0x102;
//public static final int MediaPlayerBuffering = 0x103
public static final int MediaPlayerPlaying = 0x104; final int MediaPlayerPaused = 0x105;
public static final int MediaPlayerStopped = 0x106
......
}
Pero Muchos de estos eventos están comentados, por lo que cuando necesitamos un evento comentado, no se agregará incluso si lo descomentamos y llamamos a mEventManager.addHandler(EventManager.getInstance()) para agregar el evento a la definición.
mEventHandler
handleMessage() para escuchar, la siguiente es una demostración que define mEventHandler:
[java] ver copia simple
videoEventHandler final privado mEventHandler = new VideoEventHandler( this);
la clase privada VideoEventHandler extiende WeakHandlerlt; {
VideoEventHandler público (propietario de DtvPlayer) {
super(propietario);
}
@Override
public void handleMessage(Mensaje de mensaje) {
Actividad de DtvPlayer = getOwner();
if( actividad == null) retorno;
cambiar (msg.getData().getInt("event")) {
caso EventManager.MediaPlayerBuffering:
Registro .d(TAG, "MediaPlayerBuffering");
descanso;
caso EventManager.MediaPlayerEncounteredError:
Log.d(TAG, "MediaPlayerEncounteredError");
romper;
......
predeterminado:
Log.e(TAG, String.format("Evento no manejado (0xx)", msg.getData().getInt("evento")));
descanso;
}
super.handleMessage(msg );
}
}
Entonces, ¿cómo escuchamos los eventos que necesitamos en mEventHandler?
Hay una constante estática en libvlcjni.c, que especifica los eventos que necesitamos obtener actualmente:
[html] view Plaincopy
static const libvlc_event_type_t mp_events [] = {
libvlc_MediaPlayerPlaying,
libvlc_MediaPlayerPaused,
libvlc_MediaPlayerEndReached,
libvlc_MediaPlayerStopped,