标签:
// 创建视频资源对象
AVAsset *asset = [AVAsset assetWithURL:self.mpc.contentURL];
// 视频图片生成器对象
AVAssetImageGenerator *generator = [AVAssetImageGenerator assetImageGeneratorWithAsset:asset];
// 截图
// value 第几帧
// timescale 每秒播放多少帧
// CMTime time = CMTimeMake(<#int64_t value#>, int32_t timescale)
// currentPlaybackTime 当前视频播放时间,单位是s
// asset.duration 视频的持续时间
CMTime time = CMTimeMakeWithSeconds(self.mpc.currentPlaybackTime,asset.duration.timescale);
NSValue *timeValue = [NSValue valueWithCMTime:time];
[generator generateCGImagesAsynchronouslyForTimes:@[timeValue] completionHandler:^(CMTime requestedTime, CGImageRef image, CMTime actualTime, AVAssetImageGeneratorResult result, NSError *error) {
// 当不是在主线程中更新UIImageView 图片的时候,会有一个时间延迟
// NSLog(@"%@",[NSThread currentThread]);
NSLog(@"截取图片成功了");
// 异步任务: 不阻塞当前线程的任务
// dispatch_sync(dispatch_get_main_queue(), ^{
//
// self.imageView.image = [UIImage imageWithCGImage:image];
// });
dispatch_async(dispatch_get_main_queue(), ^{
self.imageView.image = [UIImage imageWithCGImage:image];
});
//
}];
标签:
原文地址:http://www.cnblogs.com/ZMiOS/p/5471181.html