简体   繁体   English

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

[英]How to get thumbnails of a video saved in document directory

I saved the captured video in document directory as shown below and now I want to display the thumbnails and play the same video.How to do this ? 我将捕获的视频保存在文档目录中,如下所示,现在我想显示缩略图并播放相同的视频。如何做到这一点?

- (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");
    }
}
}

Get videos from doc dir like this 从doc dir获取这样的视频

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];

}

Also add this method: 还要添加此方法:

-(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;
 }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM