// 获取视频第一帧
- (UIImage*)firstFrameWithVideoURL:(NSURL*)url size:(CGSize)size{
NSDictionary *opts = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO] forKey:AVURLAssetPreferPreciseDurationAndTimingKey];
AVURLAsset *urlAsset = [AVURLAsset URLAssetWithURL:url options:opts];
AVAssetImageGenerator *generator = [AVAssetImageGenerator assetImageGeneratorWithAsset:urlAsset];
generator.appliesPreferredTrackTransform = YES;
generator.maximumSize = CGSizeMake(size.width, size.height);
NSError*error =nil;
CGImageRef img = [generator copyCGImageAtTime:CMTimeMake(0, 10) actualTime:NULL error:&error];
{
return [UIImage imageWithCGImage:img];
}
return nil;
}
/* 获取当前帧画面 */
- (UIImage *)getMovieCurrentImage {
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:self.playerURL options:nil];
AVAssetImageGenerator *gen = [[AVAssetImageGenerator alloc] initWithAsset:asset];
gen.appliesPreferredTrackTransform = YES;
CMTime now = self.playerView.player.currentTime;
[gen setRequestedTimeToleranceAfter:kCMTimeZero];
[gen setRequestedTimeToleranceBefore:kCMTimeZero];
CGImageRef image = [gen copyCGImageAtTime:now actualTime:NULL error:NULL];
UIImage *thumb = [[UIImage alloc] initWithCGImage:image];
if (image) CFRelease(image);
return thumb;
}
网友评论