Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 使用GenerateGimages同步40次获取图像时出现问题_Objective C_Ios - Fatal编程技术网

Objective c 使用GenerateGimages同步40次获取图像时出现问题

Objective c 使用GenerateGimages同步40次获取图像时出现问题,objective-c,ios,Objective C,Ios,我想从电影中获取一些图像并制作gif。我所做的是使用imagePickerController拍摄电影,然后使用AssetImageGenerator - (void)generateCGImagesAsynchronouslyForTimes:(NSArray *)requestedTimes completionHandler:(AVAssetImageGeneratorCompletionHandler)handler; 生成图像。我确实得到了图像,但是图像的时间不是我想要的 请求:{0

我想从电影中获取一些图像并制作gif。我所做的是使用imagePickerController拍摄电影,然后使用AssetImageGenerator

- (void)generateCGImagesAsynchronouslyForTimes:(NSArray *)requestedTimes completionHandler:(AVAssetImageGeneratorCompletionHandler)handler;
生成图像。我确实得到了图像,但是图像的时间不是我想要的

请求:{0/600=0.000,取整},获取:{0/600=0.000}

请求:{110/600=0.183,四舍五入},获取:{0/600=0.000}

请求:{221/600=0.368,四舍五入},获取:{0/600=0.000}

请求:{331/600=0.552,四舍五入},获取:{601/600=1.002}

请求:{442/600=0.737,四舍五入},获取:{601/600=1.002}

请求:{552/600=0.920,四舍五入},获取:{601/600=1.002}

请求:{663/600=1.105,四舍五入},获取:{601/600=1.002}

请求:{773/600=1.288,四舍五入},获取:{601/600=1.002}

请求:{884/600=1.473,四舍五入},获取:{601/600=1.002}

正如你所看到的,时间被四舍五入到整数,有没有什么方法可以精确地得到电影的第二个图像

对不起,我的英语很差! 希望有人能帮助我,谢谢

在以下内容中找到了答案:

requestedTimeToleranceBefore
requestedTimeToleranceAfter
的值设置为
kCMTimeZero
,以请求帧精确图像生成;这可能导致额外的解码延迟

以下是我使用的代码:

imageGenerator.requestedTimeToleranceAfter = kCMTimeZero;
imageGenerator.requestedTimeToleranceBefore = kCMTimeZero;
在以下内容中找到了答案:

requestedTimeToleranceBefore
requestedTimeToleranceAfter
的值设置为
kCMTimeZero
,以请求帧精确图像生成;这可能导致额外的解码延迟

以下是我使用的代码:

imageGenerator.requestedTimeToleranceAfter = kCMTimeZero;
imageGenerator.requestedTimeToleranceBefore = kCMTimeZero;

就这样。非常感谢,就这样。非常感谢你。