Sto tentando di creare una galleria video.Problema di prestazioni AVAssetImageGenerator
Per visualizzare video Sto usando uno UICollectionView
. Ogni UICollectionViewCell
ha uno sfondo con miniatura del video. Per generare una miniatura del video Sto usando un metodo con la logica:
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];
ho notato che generateCGImagesAsynchronouslyForTimes
non funziona completamente in modo asincrono. C'è uno spazio di tempo tra questo metodo chiama. Ciò causa un grande ritardo mentre sto caricando le celle di visualizzazione tabella. Se commento linea [generator generateCGImagesAsynchronouslyForTimes:[NSArray arrayWithObject:[NSValue valueWithCMTime:time]] completionHandler:handler]
allora non ci sono lag visibili (né immagini).
Come posso risolvere questo problema di prestazioni?
Puoi specificare cosa esattamente ritarda? La prestazione di scorrimento subisce o ci vuole solo molto tempo tra la richiesta e quando viene chiamato il gestore? Puoi aggiungere i risultati dello strumento Time Profiler? – jszumski
Ci sono intervalli di tempo tra le chiamate 'generateCGImagesAsynchronouslyForTimes' ... –
@TomKortney Hai trovato una soluzione? di fronte allo stesso numero – Sam