Video galerisi oluşturmaya çalışıyorum.AVAssetImageGenerator performans sorunu
Videoları görüntülemek için UICollectionView
numaralı telefonu kullanıyorum. Her UICollectionViewCell
, video küçük resimli bir arka plana sahiptir. Ben generateCGImagesAsynchronouslyForTimes
uyumsuz tamamen çalışmaz fark etmiş
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:url options:nil];
AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
generator.appliesPreferredTrackTransform = YES;
CMTime time = CMTimeMakeWithSeconds(0,15);
AVAssetImageGeneratorCompletionHandler handler = ^(CMTime timeRequested, CGImageRef image, CMTime timeActual, AVAssetImageGeneratorResult result, NSError *error)
{
NSLog(@"handler^()");
if (result == AVAssetImageGeneratorSucceeded)
{
thumbnail = [UIImage imageWithCGImage: image];
success(thumbnail);
}
else
{
failure(error);
}
};
CGSize maximumSize = CGSizeMake(CLIPBOARD_COLLECTION_VIEW_CELL_WIDTH, CLIPBOARD_COLLECTION_VIEW_CELL_HEIGHT);
generator.maximumSize = maximumSize;
NSLog(@"generateCGImagesAsynchronouslyForTimes:");
[generator generateCGImagesAsynchronouslyForTimes:[NSArray arrayWithObject:[NSValue valueWithCMTime:time]] completionHandler:handler];
: Ben mantığı ile bir yöntemi kullanıyorum bir video küçük oluşturmak için. Bu yöntem çağrıları arasında bir zaman aralığı var. Bu tablo görünümü hücreleri yüklerken büyük bir gecikme neden olur. [generator generateCGImagesAsynchronouslyForTimes:[NSArray arrayWithObject:[NSValue valueWithCMTime:time]] completionHandler:handler]
numaralı hattı yorumlarsam, görünür bir gecikme (veya resim) yoktur.
Bu performans sorununu nasıl çözebilirim?
Tam olarak ne gecikme olduğunu belirtebilir misiniz? Kaydırma performansı muzdarip mi, yoksa istek ile işleyici arandığında uzun zaman alıyor mu? Zaman Profiler aracının sonuçlarını ekleyebilir misiniz? – jszumski
"generateCGImagesAsynchronouslyForTimes" çağrıları arasında zaman boşlukları var ... –
@TomKortney Bir çözüm buldunuz mu? Aynı sorunla karşılaşma – Sam