【问题标题】:How to get thumbnails of a video saved in document directory如何获取保存在文档目录中的视频缩略图
【发布时间】:2012-09-26 12:48:10
【问题描述】:

我将捕获的视频保存在如下所示的文档目录中,现在我想显示缩略图并播放相同的视频。如何做到这一点?

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

【问题讨论】:

    标签: iphone objective-c ios ios5 ios4


    【解决方案1】:

    像这样从 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];
    
    }
    

    同时添加这个方法:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-13
      • 1970-01-01
      • 2011-05-12
      • 2010-11-19
      • 2012-03-28
      • 2020-05-28
      • 2010-09-14
      • 1970-01-01
      相关资源
      最近更新 更多