Я пытаюсь использовать переднюю камеру как датчик яркости (нет открытого API для отдельного датчика яркости, который, по-видимому, использовал для регулировки яркости экрана).
Мне удалось настроить сеанс видеозахвата и захватить кадры из видео, используя AVCaptureVideoOutput, и вычислить яркость из кадра. Тем не менее, камера постоянно регулирует свои настройки экспозиции, чтобы компенсировать яркость, что имеет смысл для записи видео, но не позволяет мне получать фактические значения яркости.
Например, если я поместил палец по камере, значение яркости быстро опустится до 0, но через несколько секунд он снова сканируется, когда камера компенсирует.
Итак... есть ли способ вручную установить экспозицию и отключить автоматическую настройку? Я попытался установить AVCaptureDevice.exposureMode, но, похоже, это не имело никакого значения.
Или, есть способ получить информацию об экспонировании из вывода захвата каким-то образом, поэтому я могу соответствующим образом уклонить вычисление яркости?
UPDATE: Я смог получить информацию EXIF таким образом; теперь мне просто нужно выяснить, как уклониться от расчета яркости.
NSDictionary* dict = (NSDictionary*) CMGetAttachment(sampleBuffer, kCGImagePropertyExifDictionary, NULL);
NSString* exp = [nsDict objectForKey:@"ExposureTime"];