Я оптимизирую проект AVCamDemo
, чтобы я мог экспериментировать с захватом только неподвижных изображений.
Ниже приведен новый код для метода captureStillImage()
:
- (void) captureStillImage
{
AVCaptureConnection *stillImageConnection = [AVCamUtilities connectionWithMediaType:AVMediaTypeVideo fromConnections:[[self stillImageOutput] connections]];
if ([stillImageConnection isVideoOrientationSupported]) {
[stillImageConnection setVideoOrientation:orientation];
}
[[self stillImageOutput] captureStillImageAsynchronouslyFromConnection:stillImageConnection
completionHandler:^(CMSampleBufferRef imageDataSampleBuffer, NSError *error) {
NSLog(@"In the completionHandler block");
if (imageDataSampleBuffer != NULL) {
NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer];
UIImage *image = [[UIImage alloc] initWithData:imageData];
[self writeImageFile:image];
[image release];
}
if ([[self delegate] respondsToSelector:@selector(captureManagerStillImageCaptured:)]) {
[[self delegate] captureManagerStillImageCaptured:self];
}
}];
NSLog(@"exiting....");
}
В моемтестируя, я обнаружил, что иногда оператор NSLog в блоке не выполняется .... и поэтому файл stillImage не сохраняется .
AmЯ сталкиваюсь с проблемами времени?Если да, то как мне их решить?
Спасибо и всего наилучшего.Сэм.