2015-06-30 3 views
0

Я использую следующий код для создания миниатюры видео с URL-адреса, код работает идеально, но требуется много времени, и это забивает приложение, пока оно не создаст образ.Создать миниатюру с url

Ее мой код:

NSString *one = self.currentList.videoLink; 
    NSURL * imageURL = [NSURL URLWithString:one]; 
    AVURLAsset *asset1 = [[AVURLAsset alloc] initWithURL:imageURL options:nil]; 


     AVAssetImageGenerator *generate1 = [[AVAssetImageGenerator alloc] initWithAsset:asset1]; 
     generate1.appliesPreferredTrackTransform = YES; 
     NSError *err = NULL; 
     CMTime time = CMTimeMake(2,1); 
     CGImageRef oneRef = [generate1 copyCGImageAtTime:time actualTime:NULL error:&err]; 
     UIImage *oneme = [[UIImage alloc] initWithCGImage:oneRef]; 
     [self.videoImage setImage:oneme]; 
     self.videoImage.contentMode = UIViewContentModeScaleToFill; 

Как я уже сказал, код отлично работает. Может ли кто-нибудь помочь мне решить задержку в создании миниатюры?

Спасибо, и я надеюсь, что вопрос ясен.

ответ

0

Если URL-адрес one - это удаленный URL-адрес, вы синхронно работаете в сети. Там будет много ваших проблем. Вы блокируете основной поток во время сети («заклинив приложение», как вы выразились). Сеть должным образом, с URLSession или AFNetworking или что-то еще. Таким образом, вы не блокируете основной поток.

(Кстати, блокирование основного потока вызывает приложение к краху, если вы делаете это на устройстве. Вы можете даже не попасть в магазин приложений, если Apple, замечает, что вы делаете это.)

Смежные вопросы