我有这个问题,我现在面对过去2天了。我需要从视频中生成图像。我正在使用$str = "S|http://www.xyz.in";
$chunks = preg_split("/\|/", $str);
print_r($chunks);
并且我正在使用方法
AVAssetImageGenerator
现在我在数组中获取图像,这些图像根据打印描述不同。但是当我在'generateCGImagesAsynchronouslyForTimes:times completionHandler:^(CMTime requestedTime, CGImageRef image, CMTime actualTime, AVAssetImageGeneratorResult result, NSError * _Nullable error)'
上设置这些图像时,我错过了一些图像,我得到一些重复images.Here是我一直在使用的代码:
UIImage
答案 0 :(得分:0)
这是我在我的应用程序中使用的代码,该应用程序目前在应用程序商店中可用并且工作得非常好。此代码获取视频的第一帧并从中生成图像。
AVURLAsset *asset1 = [[AVURLAsset alloc] initWithURL:[NSURL fileURLWithPath:toPath] options:nil];
AVAssetImageGenerator *generate1 = [[AVAssetImageGenerator alloc] initWithAsset:asset1];
generate1.appliesPreferredTrackTransform = YES;
NSError *err = NULL;
CMTime time = CMTimeMake(1, 2);
CGImageRef oneRef = [generate1 copyCGImageAtTime:time actualTime:NULL error:&err];
UIImage *image = [[UIImage alloc] initWithCGImage:oneRef];
希望这段代码对您有用。 Lemme知道你的评论:)快乐的编码伙伴:)
答案 1 :(得分:0)
imageGenerator.requestedTimeToleranceBefore = kCMTimeZero;
imageGenerator.requestedTimeToleranceAfter = kCMTimeZero;
我添加了这两行,现在我得到了我需要的完美结果。我仍然不是100%确定这些属性做了什么,但我得到了我需要的东西。现在如果有人解释这些属性,它会省去一些因为我迟早会探索这些属性。只需复制代码,你就会看到一切现在都完美无缺。 : - )