簡體   English   中英

如何獲取保存在文檔目錄中的視頻的縮略圖

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

我將捕獲的視頻保存在文檔目錄中,如下所示,現在我想顯示縮略圖並播放相同的視頻。如何做到這一點?

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM