iPhone相机无法设置长曝光时间

时间:2016-03-01 08:21:27

标签: ios iphone avfoundation avcapturesession avcapturedevice

我在设置自定义曝光时间方面遇到问题。 根据{{​​3}},设置曝光时间的唯一方法是使用方法setExposureModeCustomWithDuration:ISO:completionHandler:。但是当我设置任何高于0.07的值并且拍摄图像时,曝光时间的值为0.06666666666666667,尽管AVCaptureDevice的maxExposureDuration属性返回最大值可以是0.5秒。

曝光时间是否会与其他相机属性发生冲突? 或者我做错了什么?

代码:

@try
{
    NSError* error;
    [self.captureDevice lockForConfiguration:&error];

    if (!error)
    {
        // Setup of other properties

        if ([self.captureDevice isExposureModeSupported:selectedExposureMode])
        {
            if (selectedExposureMode == AVCaptureExposureModeCustom) {
                [self.captureDevice setExposureModeCustomWithDuration:exposureTimeValue ISO:isoValue completionHandler:^(CMTime syncTime) {}];
            }
        }
    }
}
@catch (NSException *exception)
{
    NSLog(@"%@",exception);
}
@finally
{
    [self.captureDevice unlockForConfiguration];
}

2 个答案:

答案 0 :(得分:1)

我测试曝光持续时间= 0.5,这是有效的,我在更改持续时间之前做了 setExposureMode

[self.captureDevice setExposureMode:AVCaptureExposureModeCustom];
[self.captureDevicesetExposureModeCustomWithDuration:CMTimeMake( 1, 2 ) ISO:iso completionHandler:^(CMTime syncTime) {}];

答案 1 :(得分:0)

我发现了什么问题。如果你想更改曝光模式(Locked,ContinuousAutoExposure,Custom),你需要重置所有相机设置,会话,预览图层,静止图像输出,基本上是第一次设置相机。