IMG_0646MOV,获取* .mov视频IOS的缩略图
我想获得一张用iPhone / iPAD拍摄的视频缩略图(* .mov)。我正在尝试使用AVFoundation库并收到此错误:
无法生成缩略图,错误:错误Domain = AVFoundationErrorDomain代码= -11822"无法打开"UserInfo = 0x15d90a30 {NSLocalizedDescription =无法打开,NSLocalizedFailureReason =不支持此媒体格式。}
代码:
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);NSString * documentDir = [paths objectAtIndex:0];NSString * videoPath = [documentDir stringByAppendingPathComponent:[NSString stringWithFormat:@"videos /%@。mov",videoName]];
AVURLAsset * asset = [[AVURLAsset alloc] initWithURL:videoPath options:nil];AVAssetImageGenerator * generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];generator.appliesPreferredTrackTransform = TRUE;
CMTime thumbTime = CMTimeMakeWithSeconds(0,30);
AVAssetImageGeneratorCompletionHandler handler = ^(CMTime requestedTime,CGImageRef im,CMTime actualTime,AVAssetImageGeneratorResult result,NSError * error){ if(result!= AVAssetImageGeneratorSucceeded){ NSLog(@"无法生成缩略图,错误:%@",错误); }self.img.image = [UIImage imageWithCGImage:im]; };
CGSize maxSize = CGSizeMake(320,180);generator.maximumSize = maxSize;[generator generateCGImagesAsynchronouslyForTimes:[NSArray arrayWithObject:[NSValue valueWithCMTime:thumbTime]] completionHandler:handler];
我用我的应用程序录制了视频,并希望显示它们的缩略图。
解决方案这是......(从这个链接中取出 -获取缩略图的视频快照)
- (UIImage *)thumbnailImageFromURL :(NSURL *)videoURL { AVURLAsset * asset = [[AVURLAsset alloc] initWithURL:videoURL options:nil];AVAssetImageGenerator * generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];NSError * err = NULL;CMTime requestedTime = CMTimeMake(1,60); //创建缩略图 CGImageRef imgRef = [generator copyCGImageAtTime:requestedTime actualTime:NULL error:& err];NSLog(@"err =%@,imageRef =%@",错误,imgRef);
UIImage * thumbnailImage = [[UIImage alloc] initWithCGImage:imgRef];CGImageRelease(imgRef); //必须明确释放以避免内存泄漏
return thumbnailImage; }
本文地址:IT屋 » 获取* .mov视频IOS的缩略图