2014-04-16 17 views
5

Sự cố tôi đang tải 20 hình ảnh từ video mất quá nhiều thời gian. Tôi càng muốn có nhiều hình thu nhỏ, tôi càng phải đợi lâu hơn. Phương pháp tôi sử dụng là generateCGImagesAsynchronouslyForTimes. Có ai biết tại sao tôi có vấn đề này?ios - generateCGImagesAsynchronouslyTạm thời mất quá nhiều thời gian

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

Tôi gặp vấn đề tương tự, bạn có giải pháp nào không? –

+0

@ScorpianAlive phải đối mặt với cùng một vấn đề, bạn có tìm thấy giải pháp không? – Sam

Trả lời

0

Tôi biết vấn đề của bạn.

Phải mất rất nhiều thời gian để tạo hình thu nhỏ vì bạn đặt requestedTimeToleranceSau đó và requestTimeToleranceBefore là kCMTimeZero.

Câu trả lời dài: Nếu bạn cụ thể TimeTolerance, nó sẽ được bật cho độ chính xác thay vì hiệu suất. nếu bạn chỉ muốn thu nhỏ video, vì vậy bạn không cần tạo hình thu nhỏ với độ chính xác cao.

Nó tương tự với seekToTime với dung sai. Tham khảo từ https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/02_Playback.html#//apple_ref/doc/uid/TP40010188-CH3-SW3, Mục Tìm kiếm — Định vị lại Playhead.

Trả lời ngắn: Chỉ cần xóa requestTimeToleranceSau đó và requestTimeToleranceBefore.

+1

câu trả lời này không phù hợp với tôi. –

+1

@SalmanKhakwani câu trả lời này không phù hợp với tôi – Sam

Các vấn đề liên quan