2014-04-16 13 views
5

Sorun şu ki, videodan 20 resim çok uzun sürüyor. Daha fazla küçük resim almak istiyorum, daha uzun beklemek zorundayım. Kullandığım Yöntem, CGImagesAsynchronouslyForTimes. Bu sorunun neden olduğunu bilen var mı?ios - generateCGImagesAsenkronizeÇok fazla sürenForTimes

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]; 
+1

Aynı sorunu yaşıyorum, herhangi bir çözümünüz var mı? –

+0

@ScorpianAlive aynı sorunla karşı karşıya kaldı, bir çözüm buldunuz mu? – Sam

cevap

0

Sorunlarınızı biliyorum.

İstenilenTimeToleranceAfter değerini ayarladığınızdan ve kimeTimeToleranceBefore kCMTimeZero olduğundan, küçük resim oluşturmak çok zaman alır.

Uzun Yanıt: Belirli bir TimeTolerance varsa, performanstan ziyade hassasiyet için döndürülecektir. Sadece video küçük resmini istiyorsanız, yüksek hassasiyete sahip küçük resim oluşturmanıza gerek yoktur.

Bu tolerans ile seekToTime ile benzer. Referans Bölümü https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/02_Playback.html#//apple_ref/doc/uid/TP40010188-CH3-SW3, Bölüm Arama - Oynatma Başlığını Yeniden Konumlandırma.

Kısa Yanıt: Sadece istenenTimeToleranceAfter ve requestedTimeToleranceBefore kaldırın.

+1

Bu cevap benim için çalışmıyor. –

+1

@SalmanKhakwani bu cevap benim için işe yaramıyor – Sam