El reproductor puede escuchar una serie de eventos que indican el estado del reproductor.
Suponiendo que PTMediaPlayer
es una propiedad del reproductor cliente, self.player
en el siguiente ejemplo representa la instancia PTMediaPlayer
. El siguiente ejemplo implementa el método addObservers
que se muestra en las instrucciones de configuración de PTMediaPlayer e incluye la mayoría de las notificaciones:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerStatusChange:)
name:PTMediaPlayerStatusNotification object:self.player];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerNotification:)
name:PTMediaPlayerNewNotificationEntryAddedNotification object:self.player];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerTimeChange:)
name:PTMediaPlayerTimeChangeNotification object:self.player];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerItemPlayStarted:)
name:PTMediaPlayerPlayStartedNotification object:self.player];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerItemPlayCompleted:)
name:PTMediaPlayerPlayCompletedNotification object:self.player];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerItemTimelineChanged:)
name:PTMediaPlayerTimelineChangedNotification object:self.player];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerItemMediaSelectionOptionsAvailable:)
name:PTMediaPlayerMediaSelectionOptionsAvailableNotification object:self.player];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerAdBreakStarted:)
name:PTMediaPlayerAdBreakStartedNotification object:self.player];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerAdBreakCompleted:)
name:PTMediaPlayerAdBreakCompletedNotification object:self.player];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerAdPlayStarted:)
name:PTMediaPlayerAdStartedNotification object:self.player];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerAdPlayProgress:)
name:PTMediaPlayerAdProgressNotification object:self.player];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerAdPlayCompleted:)
name:PTMediaPlayerAdCompletedNotification object:self.player];
ThePTMediaPlayerNotifications
La clase enumera las notificaciones que el TVSDK envía al reproductor.
Notificación | Significado |
PTMediaPlayerAdBreakCompletedNotification | Se ha finalizado una pausa publicitaria. |
PTMediaPlayerAdBreakStartedNotification | Se inició una pausa publicitaria. |
PTMediaPlayerAdClickNotification | Un usuario hizo clic en un anuncio de banner. |
PTMediaPlayerAdCompletedNotification | Finalizó un anuncio individual. |
PTMediaPlayerAdProgressNotification | Un anuncio progresó; se envía constantemente mientras se reproduce un anuncio. |
PTMediaPlayerAdStartedNotification | Se inició un anuncio individual. |
PTBackgroundManifestErrorNotification | Error al descargar el manifiesto de fondo. |
PTMediaPlayerBufferingCompletedNotification | Se ha completado el almacenamiento en búfer. |
PTMediaPlayerBufferingStartedNotification | El reproductor de contenidos entra en estado de almacenamiento en búfer. |
PTAudioTrackChangeCompleted | Se ha completado un cambio en la pista de audio del contenido multimedia que se está reproduciendo. |
PTAudioTrackChangeStarted | Se inicia un cambio en la pista de audio del contenido multimedia que se está reproduciendo. |
PTMediaPlayerItemChangedNotification | Se ha establecido un PTMediaPlayerItem diferente del PTMediaPlayer . |
PTMediaPlayerItemDRMMetadataChanged | Los metadatos DRM han cambiado. |
PTMediaPlayerMediaSelectionOptionsAvailableNotification | Hay nuevos subtítulos y pistas de audio alternativas ( PTMediaSelectionOption ). |
PTMediaPlayerNewNotificationEntryAddedNotification | Se ha añadido una nueva notificación PTNotification al PTNotificationHistoryItem del PTMediaPlayerItem actual, es decir, cuando se agrega un evento de notificación al historial de notificaciones. |
PTMediaPlayerPlayCompletedNotification | Reproducción de contenidos finalizada. |
PTMediaPlayerSeekCompletedNotification | La llamada a otro punto del contenido se ha completado. |
PTMediaPlayerSeekErrorNotification | Error en la operación de búsqueda actual. |
PTMediaPlayerSeekStartedNotification | La llamada a otro punto del contenido está empezando. |
PTMediaPlayerPlayStartedNotification | Reproducción iniciada. |
PTMediaPlayerStatusNotification | El estado del reproductor ha cambiado. Los valores de estado posibles son:
|
PTMediaPlayerTimeChangeNotification | El tiempo de reproducción actual ha cambiado. |
PTMediaPlayerTimelineChangedNotification | La línea de tiempo del reproductor actual ha cambiado. |
PTTimedMetadataChangedNotification | El TVSDK detectó la primera incidencia de una etiqueta suscrita. |
PTTimedMetadataChangedInBackgroundNotification | Se identifica una etiqueta suscrita en el manifiesto de fondo y se prepara una nueva instancia PTTimedMetadata a partir de ella. |
Los siguientes fragmentos de código ilustran algunas de las formas en que puede utilizar las notificaciones.
Recupere la instancia PTAdBreak
utilizando PTMediaPlayerAdBreakKey
:
- (void) onMediaPlayerAdBreakStarted:(NSNotification *) notification {
// Fetch the PTAdBreak instance using PTMediaPlayerAdBreakKey
PTAdBreak *adBreak = [notification.userInfo objectForKey:PTMediaPlayerAdBreakKey];
...
...
}
Establezca subtitlesOptions
y audioOptions
:
- (void) onMediaPlayerItemMediaSelectionOptionsAvailable:(NSNotification \*) notification {
//SubtitlesOptions and audioOptions are set and accessible now.
NSArray* subtitlesOptions = self.player.currentItem.subtitlesOptions;
NSArray* audioOp tions = self.player.currentItem.audioOptions;
...
...
}
Recupere la instancia PTAd
utilizando PTMediaPlayerAdKey
:
- (void) onMediaPlayerAdPlayStarted:(NSNotification \*) notification {
// Fetch the PTAdinstance using PTMediaPlayerAdKey
PTAd *ad = [notification.userInfo objectForKey:PTMediaPlayerAdKey];
...
...
}