TVSDK envía eventos/notificaciones en secuencias esperadas generalmente. El reproductor puede implementar acciones basadas en eventos en la secuencia esperada.
Los siguientes ejemplos muestran el orden de algunos eventos que incluyen eventos de reproducción.
Cuando se carga correctamente un recurso de medios a través de MediaPlayer.replaceCurrentResource
, el orden de los eventos es:
MediaPlayerStatusChangeEvent.STATUS_CHANGED
con estado MediaPlayerStatus.INITIALIZING
MediaPlayerItemEvent.ITEM_CREATED
MediaPlayerStatusChangeEvent.STATUS_CHANGED
con estado MediaPlayerStatus.INITIALIZED
Al prepararse para la reproducción mediante MediaPlayer.prepareToPlay
, el orden de los eventos es:
MediaPlayerStatusChangeEvent.STATUS_CHANGED
con estado MediaPlayerStatus.PREPARING
TimelineEvent.TIMELINE_UPDATED
si se insertaron anuncios
MediaPlayerStatusChangeEvent.STATUS_CHANGED
con estado MediaPlayerStatus.PREPARED
Para emisiones en directo/lineales, durante la reproducción a medida que avanza la ventana de reproducción y se resuelven las oportunidades adicionales, el orden de los eventos es:
MediaPlayerItemEvent.ITEM_UPDATED
TimelineEvent.TIMELINE_UPDATED
si se insertaron anunciosEl siguiente ejemplo muestra una progresión típica de eventos:
mediaPlayer.addEventListener(MediaPlayerItemEvent.ITEM_CREATED, onItemCreated);
public function onItemCreated(event:MediaPlayerItemEvent):void {
var item:MediaPlayerItem = event.item;
...
}
mediaPlayer.addEventListener(MediaPlayerItemEvent.ITEM_UPDATED, onItemUpdated);
public function onItemUpdated(event:MediaPlayerItemEvent):void {
var item:MediaPlayerItem = event.item;
...
}
mediaPlayer.addEventListener(MediaPlayerStatusChangeEvent.STATUS_CHANGED,
onStatusChanged);
public function onStatusChanged(event:MediaPlayerStatusChangeEvent):void {
switch(event.status){
case MediaPlayerStatus.INITIALIZING:
case MediaPlayerStatus.INITIALIZED:
...
}
...
}
mediaPlayer.addEventListener(TimeChangeEvent.TIME_CHANGED, onTimeChanged);
public function onTimeChanged(event:TimeChangeEvent):void {
var timeInMilliseconds:Number = event.time;
...
}