ios - generateCGImagesAsynchronouslyForTimes花费太长时间

Tun*_*Duc 5 image generator ios

我遇到的问题是从视频加载20张图片需要太长时间.我想要获得的缩略图越多,我就越需要等待.我使用的方法是generateCGImagesAsynchronouslyForTimes.有谁知道为什么我有这个问题?

AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
generator.appliesPreferredTrackTransform = YES;
generator.requestedTimeToleranceAfter = kCMTimeZero;
generator.requestedTimeToleranceBefore = kCMTimeZero;
CGSize maxSize = CGSizeMake(320, 180);
generator.maximumSize = maxSize;
AVAssetImageGeneratorCompletionHandler handler = ^(CMTime requestedTime, CGImageRef im, CMTime actualTime, AVAssetImageGeneratorResult result, NSError *error){

    if (result != AVAssetImageGeneratorSucceeded) {
        NSLog(@"couldn't generate thumbnail, error:%@", error);
    }

    UIImage *frameImage = [UIImage imageWithCGImage:im];
    dispatch_async(dispatch_get_main_queue(), ^{
        [_frameImageView setImage:frameImage];
    });
};
[generator generateCGImagesAsynchronouslyForTimes:timeArray completionHandler:handler];
Run Code Online (Sandbox Code Playgroud)

Ngh*_*ran 0

我知道你的问题。

\n\n

生成缩略图需要花费大量时间,因为您将requestedTimeToleranceAfter和requestedTimeToleranceBefore设置为kCMTimeZero。

\n\n

长答案: \n如果您指定了 TimeTolerance,它将转向精度而不是性能。如果您只想视频缩略图,那么您不需要生成高精度的缩略图。

\n\n

它与具有容差的seekToTime 类似。参考https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/02_Playback.html#//apple_ref/doc/uid/TP40010188-CH3-SW3,部分寻求\xe2\x80 \x94重新定位播放头。

\n\n

简短回答: \n只需删除requestedTimeToleranceAfter 和requestedTimeToleranceBefore。

\n