Usar metadatos temporizados

Puede utilizar TimedMetadata cuando el tiempo de reproducción actual coincida con la hora de inicio.

Para utilizar estos PTTimedMetadata objetos guardados durante la reproducción, utilice el diccionario guardado de Almacene los objetos de metadatos temporizados a medida que se envían.

  1. Extraiga y actualice el tiempo de reproducción actual desde esta notificación y busque todos los objetos PTTimedMetadata con tiempos de inicio que coincidan con el tiempo de reproducción actual.

    Puede utilizar estos objetos para completar varias acciones.

    Por ejemplo:

    - (void) onMediaPlayerTimeChange:(NSNotification *)notification 
    { 
        CMTimeRange seekableRange = self.player.seekableRange; 
        if (CMTIMERANGE_IS_VALID(seekableRange)) 
        { 
            int currentTime = (int) CMTimeGetSeconds(self.player.currentTime); 
            NSArray *allKeys = timedMetadataCollection ? [timedMetadataCollection allKeys] : [NSArray array]; 
            NSMutableArray *timedMetadatasToDelete = [[[NSMutableArray alloc] init] autorelease]; 
            int count = [allKeys count]; 
    
            for (int i=count - 1; i > -1; i--) 
            { 
               NSNumber *currTimedMetadataTime = allKeys[i]; 
               if ([currTimedMetadataTime integerValue] == currentTime) 
               { 
                /* 
                    Use the timed metadata here and remove it from the collection. 
                */ 
                 NSLog (@"IN PLAYBACK TIME %i TO EXECUTE TIMEDMETADATA %@ scheduled at time %f",currentTime,currTimedMetadata.name,CMTimeGetSeconds(currTimedMetadata.time)); 
    
                PTTimedMetadata *currTimedMetadata = [timedMetadataCollection objectForKey:currTimedMetadataTime]; 
                [timedMetadatasToDelete addObject:currTimedMetadataTime]; 
               } 
            } 
    
            for (int i=0; i<[timedMetadatasToDelete count]; i++) 
            { 
                NSNumber *timedMetadataToDelete = timedMetadatasToDelete[i]; 
                [timedMetadataCollection removeObjectForKey:timedMetadataToDelete]; 
            } 
        } 
    }
    
  2. Elimine periódicamente instancias PTTimedMetadata obsoletas de la lista para evitar que la memoria crezca continuamente.

En esta página