2016-03-01 175 views
0

我在設置自定義曝光時間時遇到問題。 根據Apple documentation設置曝光時間的唯一方法是使用方法setExposureModeCustomWithDuration:ISO:completionHandler:。但是,當我設置高於0.07的任何值並且圖像被拍攝時,曝光時間具有值0.06666666666666667,儘管AVCaptureDevice的maxExposureDuration屬性返回最大值可以是0.5秒。iPhone相機無法設置長時間曝光時間

曝光時間是否可以與其他相機屬性相沖突? 或者我做錯了什麼?

代碼:

@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]; 
} 
+0

什麼是isoValue? –

+0

@BrandonA isoValue是'self.captureDevice.activeFormat.minISO'和'self.captureDevice.activeFormat.maxISO'之間的浮點數。 AVCaptureISOCurrent的值可以用來表示調用者不希望爲ISO指定一個值。 –

回答

1

I測試曝光持續時間= 0.5,這是工作,我確實setExposureMode改變的持續時間之前。

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

我發現有什麼問題。如果您想更改曝光模式(鎖定,連拍自動曝光,自定義),您需要重置所有相機設置,會話,預覽圖層,靜止圖像輸出,基本上像第一次設置相機。