Ich versuche, eine Video-Galerie zu erstellen.AVAssetImageGenerator Leistungsproblem
Um Videos anzuzeigen verwende ich eine UICollectionView
. Jede UICollectionViewCell
hat einen Hintergrund mit Video-Miniaturansicht. Um einen Video-Thumbnail zu erzeugen ich eine Methode, mit der Logik bin mit:
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];
Ich habe bemerkt, dass generateCGImagesAsynchronouslyForTimes
nicht vollständig asynchron arbeiten. Dort wird ein Zeitabstand zwischen dieser Methode aufgerufen. Dies verursacht eine große Verzögerung, während ich Tabellenansichtszellen lade. Wenn ich die Zeile [generator generateCGImagesAsynchronouslyForTimes:[NSArray arrayWithObject:[NSValue valueWithCMTime:time]] completionHandler:handler]
kommentiere, dann gibt es keine sichtbare Verzögerung (noch Bilder).
Wie kann ich dieses Leistungsproblem lösen?
Können Sie angeben, was genau Lags? Leidet die Scroll-Performance oder dauert es nur sehr lange zwischen der Anfrage und dem Aufruf des Handlers? Können Sie die Ergebnisse des Time Profiler-Instruments hinzufügen? – jszumski
Es gibt Zeit Zwischenräume zwischen 'generateCGImagesAsynchronouslyForTimes' Anrufe ... –
@TomKortney Haben Sie eine Lösung gefunden? mit dem gleichen Problem konfrontiert – Sam