如何在文档目录中保存视频的缩略图

3
我将捕获的视频保存在文档目录中,如下所示,现在我想要显示缩略图并播放同一视频。如何操作?
- (void) imagePickerController: (UIImagePickerController *) picker didFinishPickingMediaWithInfo: (NSDictionary *) info

{    
    NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];

    [self dismissModalViewControllerAnimated:NO];

// Handle a movie capture
if (CFStringCompare ((__bridge_retained CFStringRef) mediaType, kUTTypeMovie, 0) == kCFCompareEqualTo)
{
    NSArray  *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDir  = [documentPaths objectAtIndex:0];
    NSString *movieName = [NSString stringWithFormat:@"%@.mov",[CoreDataFunctions getNameForVideoForDate:[CalendarFunctions getCurrentDateString]]];
    NSString *moviePath    = [documentsDir stringByAppendingPathComponent:movieName];
    NSURL * movieURL = [info valueForKey:UIImagePickerControllerMediaURL];
    NSData * movieData = [NSData dataWithContentsOfURL:movieURL];
    NSLog(@"%@",moviePath);
    if([movieData writeToFile:moviePath atomically:NO])
    {
        if(![CoreDataFunctions saveVideoInfoInDatabaseForDate:[CalendarFunctions getCurrentDateString]])
        {
            NSLog(@"Video was saved in doucment directory but could not be saved in core data");
        }
    }
    else
    {
        NSLog(@"Video could not be saved to the document directry");
    }
}
}
1个回答

7

像这样从文档目录获取视频

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSError * error;
NSArray *directoryContents =  [[NSFileManager defaultManager] 
                          contentsOfDirectoryAtPath:documentsDirectory error:&error];

//Take all images in NSMutableArray
NSMutableArray *arrVideoImages = [[NSMutableArray alloc]init];
for(NSString *strFile in directoryContents)
{
   NSString *strVideoPath = [NSString stringWithFormat:@"%@/%@",documentsDirectory,strFile];
   UIImage *img = [self getThumbNail:strVideoPath];
   [arrVideoImages addObject:img];

}

还需要添加这个方法:
-(UIImage *)getThumbNail:(NSString)stringPath
{
  NSURL *videoURL = [NSURL fileURLWithPath:stringPath];

  MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];

    UIImage *thumbnail = [player thumbnailImageAtTime:1.0 timeOption:MPMovieTimeOptionNearestKeyFrame];

    //Player autoplays audio on init
    [player stop];
    [player release];
    return thumbnail;
 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接