Ios8 如何使用captureStillImageAsynchronouslyFromConnection捕获多个快照
我正在尝试在ios8应用程序中实现多个快照。 我正在使用llsimplecamera(),它是AvFoundation的一个包装器,与我一样工作良好。 当我按下快门按钮时,会调用“captureStillImageAsynchronouslyFromConnection”(AVCaptureStillImageOutput实例的一种方法),所有操作都正常,我会获得一张照片。 如果我尝试将“captureStillImageAsynchronouslyFromConnection”放在一个循环中以捕获多个快照,则不会得到任何照片。 我尝试使用信号量技术:Ios8 如何使用captureStillImageAsynchronouslyFromConnection捕获多个快照,ios8,avfoundation,Ios8,Avfoundation,我正在尝试在ios8应用程序中实现多个快照。 我正在使用llsimplecamera(),它是AvFoundation的一个包装器,与我一样工作良好。 当我按下快门按钮时,会调用“captureStillImageAsynchronouslyFromConnection”(AVCaptureStillImageOutput实例的一种方法),所有操作都正常,我会获得一张照片。 如果我尝试将“captureStillImageAsynchronouslyFromConnection”放在一个循环中以
if ([self.captureDevice lockForConfiguration:nil]) {
if ([self.captureDevice isFocusModeSupported:AVCaptureFocusModeLocked])
[self.captureDevice setFocusMode:AVCaptureFocusModeLocked];
if ([self.captureDevice isExposureModeSupported:AVCaptureExposureModeLocked])
[self.captureDevice setExposureMode:AVCaptureExposureModeLocked];
if ([self.captureDevice isWhiteBalanceModeSupported:AVCaptureWhiteBalanceModeLocked])
[self.captureDevice setWhiteBalanceMode:AVCaptureWhiteBalanceModeLocked];
}
AVCaptureConnection *videoConnection = [self captureConnection];
videoConnection.videoOrientation = [self orientationForConnection];
dispatch_semaphore_t sync = dispatch_semaphore_create(0);
while(1)
{
[self.stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler: ^(CMSampleBufferRef imageSampleBuffer, NSError *error)
{
if (imageSampleBuffer != NULL)
{
NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageSampleBuffer];
UIImage *image = [UIImage imageWithData:imageData];
NSLog(@"image %@",image);
}
dispatch_semaphore_signal(sync);
}];
dispatch_semaphore_wait(sync, DISPATCH_TIME_FOREVER);
}
return nil;
但是我没有照片。
我做错了什么?
提前谢谢