我正在开发的App使用AVFoundation来启动视频会话并应用一些图像处理。为了使处理工作,照明条件不能太亮(相机的曝光不应太高)。
到目前为止,在所有iOS设备上,从黑暗场景(如我的黑色桌面)切换到灯光场景(显示要处理的图像的计算机屏幕)最多只需2-3秒即可完成调整曝光
然而,在iphone4S上,这需要更长的时间,5-6秒,这对用户体验来说是不可接受的。有没有人有同样的问题?我尝试过使用3种相机曝光设置:
AVCaptureExposureModeAutoExpose,
AVCaptureExposureModeContinuousAutoExposure,
AVCaptureExposureModeLocked
将其设置为:
NSError *error = nil;
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
AVCaptureDevice *captureDevice = [devices objectAtIndex:0];
if ([captureDevice lockForConfiguration:&error])
{
// Setup the device with the necessary settings
if([captureDevice isExposureModeSupported:AVCaptureExposureModeAutoExpose])
{
captureDevice.exposureMode = AVCaptureExposureModeAutoExpose;
}
[captureDevice unlockForConfiguration];
}
else
{
// handle failure
}
但问题仍然存在。我得到的最接近解决方案是使用AVCaptureExposureModeLocked,但这会将相机启动时的曝光设置锁定到当前级别。这意味着如果视频在光线条件下启动,图像处理工作效果非常好,但如果视频在黑暗条件下启动,则几乎不可能在计算机屏幕上处理任何内容,因为它太亮(显然曝光赢了)不要调整。
我的问题如下:无论如何都要直接在后置摄像头上设置曝光设置(而不是通过“曝光模式”),如果没有,是否有任何可以加速曝光调整的东西?
我觉得很烦人iphone4S上的官方相机应用程序根本没有这个问题,因为那里的曝光在从非常暗到非常轻的不到2秒内发生变化。非常感谢任何建议!