iOS:AVAssetImageGenerator requestedTimeTolerance无效

时间:2015-08-18 13:11:23

标签: ios avassetimagegenerator

我尝试显示视频的一系列帧,就像照片应用中的滑块一样。

这是代码

self.imageGenerator = [AVAssetImageGenerator assetImageGeneratorWithAsset:self.videoAsset];

self.imageGenerator.maximumSize = CGSizeMake(frameDisplaySize.width,
                                             frameDisplaySize.height);
self.imageGenerator.appliesPreferredTrackTransform = YES;
self.imageGenerator.requestedTimeToleranceBefore   = kCMTimePositiveInfinity;
self.imageGenerator.requestedTimeToleranceAfter    = kCMTimePositiveInfinity;
NSMutableArray *videoFrames  = [NSMutableArray array];
[self.imageGenerator generateCGImagesAsynchronouslyForTimes:times
                                          completionHandler:^(CMTime requestedTime, CGImageRef image, CMTime actualTime,
                                                              AVAssetImageGeneratorResult result, NSError *error) {
                                              if (result == AVAssetImageGeneratorSucceeded)
                                              {
                                                  UIImage *frame = [[UIImage alloc] initWithCGImage:image];
                                                  [videoFrames addObject:frame];
                                              }
                                              else if (result == AVAssetImageGeneratorFailed)
                                              {
                                                  NSLog(@"Failed with error: %@", [error localizedDescription]);
                                              }
                                              else
                                              {
                                                  NSLog(@"Canceled");
                                              }
                                          }];

问题是当我运行代码时,这给了我具有最高精度的帧,这与容差设置为kCMTimeZero时相同。事实上,无论我尝试什么样的公差值,我总是得到相同的框架。由于精度高,生成过程有4秒的滞后。照片的应用程序只需1.5秒即可显示帧,而且帧的精确度很低,几乎只有视频的iframe。 那么,这是AVAssetImageGenerator中的一个错误,还是我的代码中的问题?

0 个答案:

没有答案