Я пытаюсь реализовать приложение камеры с использованием AVFoundation. Я хочу использовать AVCaptureExposureModeAutoFocus установить exposurePointOfInterest в точке, а затем зафиксировать экспозицию, как объяснена документации Apple:iPhone 5: AVCaptureExposureModeAutoFocus не поддерживается в iOS 7
AVCaptureExposureModeAutoExpose: устройство автоматически регулирует экспозицию один раз, а затем изменяет режим экспозиции AVCaptureExposureModeLocked.
Это функция, которую я использовал:
-(void)autoExposeAtPoint:(CGPoint)point
{
AVCaptureDevice *device = [videoInput device];
if([device isExposurePointOfInterestSupported] && [device isExposureModeSupported:AVCaptureExposureModeAutoExpose]){
if([device lockForConfiguration:NULL]){
[device setExposurePointOfInterest:point];
[device setExposureMode:AVCaptureExposureModeAutoExpose];
[device unlockForConfiguration];
NSLog(@"Exposure point of intereset has been set to (%f,%f)",point.x, point.y);
}
}
}
Однако автоэкспозиции в нужном месте просто не было. Когда я отлаживал использование NSLog ниже, оказалось, что AVCaputreExposureModeAutoExpose
не поддерживается. Если бы я использовал AVCaptureExposureModeContinuousAutoExpose
, он работал бы отлично.
Я не понимаю этого; это правда, что этот AVCaputreExposureModeAutoExpose
не поддерживается в задней камере iPhone 5 с iOS7? У кого-нибудь есть ключ? БЛАГОДАРЯ!
Debug Код:
NSLog(@"issupported: %hhd", [device isExposurePointOfInterestSupported]);
NSLog(@"ismodesupported: %hhd" ,[device isExposureModeSupported:AVCaptureExposureModeAutoExpose]);
**Result:**
issupported: 1
ismodesupported: 0
Соответствующий ключ на самом деле «регулирует экспозицию». – nrj