从AVPlayer ios生成缩略图

时间:2013-12-23 20:44:33

标签: ios avplayer avassetimagegenerator

我正在尝试从特定时间码中的视频生成缩略图图像。 我正在使用AVPlayer,这是我写的方法:

-(UIImageView *) generateCommentThumbnail: (CMTime) now{

AVAssetImageGenerator *gen = [[AVAssetImageGenerator alloc] initWithAsset:videoAsset];
gen.appliesPreferredTrackTransform = YES;

NSError *error = nil;
CMTime actualTime;
[gen setRequestedTimeToleranceAfter:kCMTimeZero];
[gen setRequestedTimeToleranceBefore:kCMTimeZero];
CGImageRef image = [gen copyCGImageAtTime:now actualTime:&actualTime error:&error];


UIImage *thumb = [[UIImage alloc] initWithCGImage:image];
UIImageView *iv = [[UIImageView alloc] initWithImage:thumb];

NSLog(@"%f , %f",CMTimeGetSeconds(now),CMTimeGetSeconds(actualTime));

NSLog(@"%@",error);
    return iv;

}

为了得到帧精确的图像,我使用了setsetRequestedTimeToleranceBefore:kCMTimeZero和setRequestedTimeToleranceAfter:kCMTimeZero,但从那以后大部分时间我都收到了这个错误:

  

错误Domain = AVFoundationErrorDomain Code = -11800“操作无法完成”

虽然,有时它工作正常。当我打印时,当得到这个错误时,“actualTime”我看到它是“inf”或“nan”或者只是一个非常大的数字。

之前有人遇到过这个?

谢谢, 约拿单

1 个答案:

答案 0 :(得分:0)

问题是你创建了这么多实例,所以你需要deallocate