비디오에서 썸네일을 가져 오려고합니다. 테이블 뷰가 셀을 재사용 할 때 비디오에서 이미지 생성을 고집하고 있습니다. 지금까지이 코드비디오에서 비디오 썸네일 가져 오기 비디오에서 새 프레임을 만들 때 시간과 테이블 뷰 스크롤이 고착됩니다.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
UIActivityIndicatorView *indicatorG = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
dispatch_async(dispatch_get_main_queue(), ^{
[indicatorG removeFromSuperview];
[indicatorG startAnimating];
[indicatorG setCenter:Cell.thumbnail.center];
[Cell.thumbnail addSubview:indicatorG];
});
AVURLAsset *asset=[[AVURLAsset alloc] initWithURL:url options:nil];
AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
generator.appliesPreferredTrackTransform=TRUE;
float getDuration = CMTimeGetSeconds(asset.duration);
CMTime thumbTime = CMTimeMakeWithSeconds(0,1);
AVAssetImageGeneratorCompletionHandler handler = ^(CMTime requestedTime, CGImageRef im, CMTime actualTime, AVAssetImageGeneratorResult result, NSError *error){
if (result != AVAssetImageGeneratorSucceeded) {
NSLog(@"couldn't generate thumbnail, error:%@", error);
}
else{
UIImageView *imgV;
imgV = [[UIImageView alloc] initWithImage:[UIImage imageWithCGImage:im]];
dispatch_async(dispatch_get_main_queue(), ^{
[indicatorG stopAnimating];
Cell.thumbnail.image = imgV.image;
});
}
// [button setImage:[UIImage imageWithCGImage:im] forState:UIControlStateNormal];
};
CGSize maxSize = CGSizeMake(320, 180);
generator.maximumSize = maxSize;
[generator generateCGImagesAsynchronouslyForTimes:[NSArray arrayWithObject:[NSValue valueWithCMTime:thumbTime]] completionHandler:handler];
});
하지만 파견 비동기를 사용하여 해결의 tableview 스크롤의 문제와 새로운 문제는이 코드를 방해 축소판 이미지의 순서이며, 도움이 사람을하시기 바랍니다?
편집 :
URL 코드 : 테이블 뷰를 스크롤하는 동안이 코드는 지속적으로 cellForItemAtIndexPath에서 실행되는
NSString *strUrl = [NSString stringWithFormat:@"%@",url];
NSURL *url = [NSURL URLWithString:strUrl];
블록이 셀의 indexPath를 유지하게하십시오. 그렇게하면 당신의 명령이 엉망이되지 않을 것입니다. – Mercurial
@ 수퍼바이저 나는 iOS를 처음 접했고 그것에 대해 자세히 설명 할 수 있습니까? – John
각 테이블 행마다 URL이 다른가요? – 3stud1ant3