image - ios - generateCGImagesAsynchronouslyForTimes taking too long -
the problem have loading 20 images video takes long. more thumbnails want get, longer have wait. method use generatecgimagesasynchronouslyfortimes. know why have problem?
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];
i know issues.
it takes lot of time generating thumbnail because set requestedtimetoleranceafter , requestedtimetolerancebefore kcmtimezero.
long answer: if specific timetolerance, turned precision rather performance. if want video thumbnail, don't need generate thumbnail hight precision.
it's similar seektotime tolerance. reference https://developer.apple.com/library/ios/documentation/audiovideo/conceptual/avfoundationpg/articles/02_playback.html#//apple_ref/doc/uid/tp40010188-ch3-sw3 , section seeking—repositioning playhead.
short answer : remove requestedtimetoleranceafter , requestedtimetolerancebefore.
Comments
Post a Comment