2012-07-31 35 views
1

我想鎖定曝光點與曝光點,但它似乎不起作用,當我嘗試在我的設備。雖然相機應用程序在你長時間按下屏幕鎖定曝光和焦點時仍然有效,但是當使用我自己的應用程序使用以下代碼行嘗試時,它不起作用。我錯過了配置上的一些東西嗎?攝像頭捕捉設備曝光模式鎖

if ([_captureInput.device isExposureModeSupported:AVCaptureExposureModeLocked] && [_captureInput.device lockForConfiguration:NULL] && [_captureInput.device isExposurePointOfInterestSupported]) 
{ 
[_captureInput.device setExposurePointOfInterest:pointOfInterest]; 
[_captureInput.device setExposureMode:AVCaptureExposureModeLocked]; 
[_captureInput.device unlockForConfiguration]; 
} 

回答

1

如何,如果你要改變閃光模式的例子是這樣的鎖定配置的例子:

AVCaptureDevice *temp = [[[[self captureSession] inputs] lastObject] device]; 

if ([temp isFlashModeSupported:AVCaptureFlashModeOn]) { 
     NSError *error; 
     bool locked = [temp lockForConfiguration:&error]; 
     if (locked) { 
      switch (self.flashMode.intValue) { 
       case 0: // Off 
        [temp setFlashMode:AVCaptureFlashModeOff]; 
        break; 
       case 1: // On 
        [temp setFlashMode:AVCaptureFlashModeOn]; 
        break; 
       case 2: // Auto 
        [temp setFlashMode:AVCaptureFlashModeAuto]; 
        break; 

       default: 
        break; 
      } 
     } else { 
      NSLog(@"Could not lock for configuration"); 
     } 

    } 

編輯:這只是一個例子(但它應該工作)正如你所看到的,我以一種非常奇怪的方式獲取捕捉設備,因爲如果你保存了它,或者如果你以不同的方式處理它,它也可以工作,所以我不保存它在任何地方。

+0

謝謝。其實我已經用火炬和閃光燈試過了,它工作。我想知道爲什麼它不像曝光照相機那樣在曝光時使用,當您長時間輕按屏幕並鎖定自動對焦/自動曝光時,亮度/對比度會發生變化。 – 2012-07-31 02:42:26

+0

你正在測試你的if中的3個條件。用旗子分別嘗試它們,看看是否有失敗。也NSLOG在鎖的錯誤參數看看爲什麼它沒有被鎖定,如果沒有被鎖定是問題。我記得有些事情是不可能鎖定的,如果它已經鎖定或者其他東西。 – Pochi 2012-07-31 02:49:34

+0

我已經試過用NSLog來做這件事,它顯示日誌,該設備是與感興趣的曝光點鎖定。奇怪的是,當背景光線發生變化時,曝光也發生了變化,這意味着它實際上並未鎖定。當您更改感興趣點的點擊區域時,預覽屏幕上不會發生任何事情。 – 2012-07-31 03:06:48

相關問題