w iOS7 stosując następującą sekwencję mogę to działa z szybkością klatek określić (ja też miał kilka problemów z wykorzystaniem activeVideoMinFrameDuration, ale to wydaje się być rozwiązanie robocza):
AVCaptureDevice* camera = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if([camera isTorchModeSupported:AVCaptureTorchModeOn]) {
[camera lockForConfiguration:nil];
//configure frame rate
[camera setActiveVideoMaxFrameDuration:CMTimeMake(1, samplingFrequency)];
[camera setActiveVideoMinFrameDuration:CMTimeMake(1, samplingFrequency)];
[camera unlockForConfiguration];
}
AVCaptureInput* cameraInput = [[AVCaptureDeviceInput alloc] initWithDevice:camera error:nil];
AVCaptureVideoDataOutput* videoOutput = [[AVCaptureVideoDataOutput alloc] init];
dispatch_queue_t captureQueue=dispatch_queue_create("catpureQueue", DISPATCH_QUEUE_SERIAL);
//setup delegate
[videoOutput setSampleBufferDelegate:self queue:captureQueue];
videoOutput.videoSettings = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithUnsignedInt:kCVPixelFormatType_32BGRA], (id)kCVPixelBufferPixelFormatTypeKey,
nil];
[catpureSession setSessionPreset:AVCaptureSessionPresetMedium];
if([catpureSession canAddInput:cameraInput])
[catpureSession addInput:cameraInput];
if([catpureSession canAddOutput:videoOutput])
[catpureSession addOutput:videoOutput];
[catpureSession startRunning];
gdzie catpureSession jest obiektem klasy AVCaptureSession i samplingFrequency jest mój frame rate (set do 30)
activeVideoMinFrameDuration ISN” t pracuje dla mnie, próbowałem zmienić go dla aktywnego urządzenia przed lub po rozpoczęciu wychwytywania, wszelkie sugestie? – avishic