Я разрабатываю приложение для iPhone, которое включает в себя некоторые стандартные функции «камеры».Сохранение в рулон камеры действительно СЛИШКОМ медленно, на iPhone 4 это занимает около четырех секунд. Есть ли способ повысить скорость?
Если вы посмотрите на стандартное приложение iPhone для камеры iPhone, оно может делать последующие фотографии без больших задержеки фотографии сохраняются довольно быстро на диск (если щелкнуть небольшой квадрат с последней сделанной фотографией в нижнем углу экрана, библиотека фотографий всегда открывается на сохраненном снимке, даже если вы делаете большую их последовательность).
Вот два фрагмента значимого кода, который я использую, чтобы получить изображение из буфера, а затем сохранить фотографию в кадре с камерой;Я попытался поместить NSLog до и после 2-го фрагмента, и он подтвердил 4-секундную задержку для завершения процесса сохранения.
[stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler: ^(CMSampleBufferRef imageSampleBuffer, NSError *error)
{
NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageSampleBuffer];
UIImage *image = [[UIImage alloc] initWithData:imageData];
...
ALAssetsLibrary *library = [[[ALAssetsLibrary alloc] init] autorelease];
NSLog(@"SCATTO: Inizio salvataggio in library...");
[library writeImageToSavedPhotosAlbum:[image CGImage] metadata:exifAttachments_dictionary completionBlock:^(NSURL *newURL, NSError *error) {
if (error){
NSLog(@"SCATTO: Salvataggio in library: ERRORE");
} else {
NSLog(@"SCATTO: Salvataggio in library: OK");
[self loadNewestPhoto];
}
}];