从电影获取缩略图

我有一个应用程序,我可以拍摄一个video,然后将其与其他一些数据存储在核心数据中。 它被存储为可变形和“存储在外部logging文件”。 我把video剪辑放到这样一个叫做电影的对象中;

(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { movie = [info objectForKey:UIImagePickerControllerEditedImage]; 

我卡住的地方是从电影中得到一个缩略图。 使用MPMoviePlayerController我必须有一个URL,但电影没有存储在任何地方。 另外从核心数据中findURL也是一个谜。

我能find的最接近的帮助是从iPhone SDK中的videourl或数据获取缩略图 。 但是我发现url问题。

我将它保存到这样的核心数据中;

  NSManagedObjectContext *context = [self managedObjectContext]; NSManagedObject *newMedia = [NSEntityDescriptioninsertNewObjectForEntityForName:@"Media" inManagedObjectContext:context]; [newMedia setValue:@"Video Clip " forKey:@"title"]; [newMedia setValue:now forKey:@"date_time"]; [newMedia setValue:movie forKey:@"movie"]; [newMedia setValue:[self generateImage] forKey:@"frame"]; 

如果有人能够给我一个指针,我将不胜感激。

从电影中获得缩略图…

 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { if ([[info objectForKey:@"UIImagePickerControllerMediaType"] rangeOfString:@"movie"].location!=NSNotFound) { MPMoviePlayerController *theMovie = [[MPMoviePlayerController alloc] initWithContentURL:[info objectForKey:@"UIImagePickerControllerMediaURL"]]; theMovie.view.frame = self.view.bounds; theMovie.controlStyle = MPMovieControlStyleNone; theMovie.shouldAutoplay=NO; UIImage *imgTemp = [theMovie thumbnailImageAtTime:0 timeOption:MPMovieTimeOptionExact]; } } 

我在我的应用程序中使用这样的

 - (UIImage *)imageFromMovie:(NSURL *)movieURL atTime:(NSTimeInterval)time { // set up the movie player MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] initWithContentURL:movieURL]; mp.shouldAutoplay = NO; mp.initialPlaybackTime = time; mp.currentPlaybackTime = time; // get the thumbnail UIImage *thumbnail = [mp thumbnailImageAtTime:time timeOption:MPMovieTimeOptionNearestKeyFrame]; // clean up the movie player [mp stop]; [mp release]; return(thumbnail); } 

用过

 imageView.image = [self imageFromMovie:fileURL atTime:10.0]; 

你可以像这样得到你的电影URL,然后使用这个URL来使用MPMoviePlayerController来获得缩略图。

 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { NSURL * movieURL = [info valueForKey:UIImagePickerControllerMediaURL] ; . .. . .. .. }