Los objetos PTNotification proporcionan información sobre cambios en el estado del reproductor, advertencias y errores. Los errores que detienen la reproducción del vídeo también provocan un cambio en el estado del reproductor.
La aplicación puede recuperar la información de notificación y estado. También puede crear un sistema de registro para diagnósticos y validación utilizando la información de notificación.
TVSDK también utiliza notification
para consultar NSNotifications
( PTMediaPlayer
notifications) event
notificaciones, enviadas para proporcionar información sobre la actividad del reproductor.
TVSDK también presenta problemas PTMediaPlayerNewNotificationItemEntryNotification
cuando se emita PTNotification
.
Los oyentes de eventos se implementan para capturar eventos y responder a ellos. Muchos eventos proporcionan PTNotification
notificaciones de estado.
PTNotification proporciona información relacionada con el estado del reproductor.
TVSDK proporciona una lista cronológica de PTNotification
notificaciones. Cada notificación contiene la siguiente información:
Marca de tiempo
Metadatos de diagnóstico que constan de los siguientes elementos:
type
: INFO, WARN o ERROR.
code
: una representación numérica de la notificación.
name
: una descripción legible en lenguaje natural de la notificación, como SEEK_ERROR
metadata
: Pares de clave/valor que contienen información relevante sobre la notificación. Por ejemplo, una clave denominada URL
proporciona un valor que es una dirección URL relacionada con la notificación.
innerNotification
: una referencia a otra PTNotification
que afecta directamente a esta notificación.
Puede almacenar esta información localmente para su posterior análisis o enviarla a un servidor remoto para su registro y representación gráfica.
TVSDK configura el reproductor para las notificaciones básicas, aunque debe completar la misma configuración para las notificaciones personalizadas.
Hay dos implementaciones para PTNotification
:
PTNotificationHistory
Para escuchar notificaciones, TVSDK crea una instancia de PTNotification
y lo adjunta a una instancia de la clase PTMediaPlayerItem
, que se adjunta a una instancia de PTMediaPlayer. Solo hay uno PTNotificationHistory
instancia por PTMediaPlayer
.
Si va a agregar personalizaciones, las aplicaciones, y no TVSDK, deben realizar estos pasos.
Hay dos maneras de escuchar el PTNotification
notificación en el PTMediaPlayer
:
Compruebe manualmente la PTNotificationHistory
de la PTMediaPlayerItem
con un temporizador y compruebe las diferencias:
//Access to the PTMediaPlayerItem
PTMediaPlayerItem *item = self.player.currentItem;
PTNotificationHistory *notificationHistory = item.notificationHistory;
//Get the list of notification events from the notification History
NSArray *notifications = notificationHistory.notificationItems;
Usar el publicado NSNotification de la PTMediaPlayerPTMediaPlayerNewNotificationEntryAddedNotification
.
Regístrese en NSNotification
mediante la instancia de PTMediaPlayer
del que desea obtener notificaciones:
//Register to the NSNotification
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMediaPlayerNotification:)
name:PTMediaPlayerNewNotificationEntryAddedNotification object:self.player];
Puede implementar devoluciones de llamadas de notificación.
Implemente la llamada de retorno de la notificación obteniendo PTNotification
desde el NSNotification
información del usuario y lectura de sus valores mediante PTMediaPlayerNotificationKey
:
- (void) onMediaPlayerNotification:(NSNotification *) nsnotification {
PTNotification *notification = [nsnotification.userInfo objectForKey:PTMediaPlayerNotificationKey];
NSLog(@"Notification: %@", notification);
}
Para añadir una notificación personalizada: Crear una nueva PTNotification
y agréguelo a la PTNotificationHistory
mediante el uso del PTMediaPlayerItem
:
//Access to the PTMediaPlayerItem
PTMediaPlayerItem *item = self.player.currentItem;
PTNotificationHistory *notificationHistory = item.notificationHistory;
//Create notification
PTNotification* notification = [[PTNotification notificationWithType:PTNotificationTypeWarning code:99999 description:@"Custom notification description"];
//Add notification
[notificationHistory addNotification:notification];