AVCamDemo: код завершенияHandler не указан - PullRequest
4 голосов
/ 02 мая 2011

Я оптимизирую проект 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Я сталкиваюсь с проблемами времени?Если да, то как мне их решить?

Спасибо и всего наилучшего.Сэм.

...