La génération de vignette de la vidéo - ios7

Je suis à l'aide de cette référence: Obtenir des vignettes à partir d'une url de la vidéo ou de données dans le SDK de l'IPhone

La méthode est à l'aide de la MPMoviePlayerController classe au lieu de la AVFoundation, et je pense que je veux l'utiliser comme bien parce que les gens ont dit que MPMoviePlayer méthode est plus rapide que la AVFoundation façon.

Le problème, c'est la méthode utilisée pour créer les miniatures, [player thumbnailImageAtTime:1.0 timeOption:MPMovieTimeOptionNearestKeyFrame] est obsolète dans iOS 7.0.

En regardant la pomme docs, le reste pris en charge façons pour créer les vignettes sont par les méthodes (void)requestThumbnailImagesAtTimes:(NSArray *)playbackTimes timeOption:(MPMovieTimeOption)option et (void)cancelAllThumbnailImageRequests. Mais, comme les signatures de méthode dicter, ces méthodes renvoient rien. Alors, comment puis-je accéder à la UIImage miniature créée par ces méthodes?

Si ça aide, c'est ce que j'ai à ce jour en termes de code:

    self.videoURL = info[UIImagePickerControllerMediaURL];
    NSData *videoData = [NSData dataWithContentsOfURL:self.videoURL];

    //Create thumbnail image
    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:self.videoURL];
    [player requestThumbnailImagesAtTimes:@[@1] timeOption:MPMovieTimeOptionNearestKeyFrame];
   //UIImage *thumbnail = ???

Comment puis-je obtenir une UIImage de référence de la vignette?

MODIFIER
J'ai compris comment créer une notification pour la vignette de l'image demande (à l'aide de cette question comme référence). Cependant, je me rends compte que cette méthode fonctionne de manière asynchrone à partir du thread principal, et donc, mon gestionnaire de notification de la méthode ne semble pas toujours être appelé.

C'est ce que j'ai maintenant.

    self.videoURL = info[UIImagePickerControllerMediaURL];
    NSData *videoData = [NSData dataWithContentsOfURL:self.videoURL];
    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:self.videoURL];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleThumbnailImageRequestFinishNotification:) name:MPMoviePlayerThumbnailImageRequestDidFinishNotification object:player];
    [player requestThumbnailImagesAtTimes:@[@1] timeOption:MPMovieTimeOptionNearestKeyFrame];

Et puis ma méthode de gestionnaire d':

-(void)handleThumbnailImageRequestFinishNotification:(NSNotification*)notification
{
    NSDictionary *userinfo = [notification userInfo];
    NSError* value = [userinfo objectForKey:MPMoviePlayerThumbnailErrorKey];
if (value != nil)
{
    NSLog(@"Error creating video thumbnail image. Details: %@", [value debugDescription]);
}
else
{
    UIImage *thumbnail = [userinfo valueForKey:MPMoviePlayerThumbnailImageKey];
}

Mais le maître n'est jamais appelé (ou ce qu'il paraît).

InformationsquelleAutor plasmaTonic | 2013-10-14