2014-01-26 88 views
2

我試圖使用AVFoundation實現相機應用程序。我想用AVCaptureExposureModeAutoFocus設置exposurePointOfInterest在一個點,然後由蘋果的文檔解釋鎖定曝光:iPhone 5:iOS 7中不支持AVCaptureExposureModeAutoFocus

AVCaptureExposureModeAutoExpose:設備自動調整 曝光一次,然後改變曝光模式 AVCaptureExposureModeLocked。

這是我使用的功能:

-(void)autoExposeAtPoint:(CGPoint)point 
{ 
    AVCaptureDevice *device = [videoInput device]; 
    if([device isExposurePointOfInterestSupported] && [device isExposureModeSupported:AVCaptureExposureModeAutoExpose]){ 
     if([device lockForConfiguration:NULL]){ 
      [device setExposurePointOfInterest:point]; 
      [device setExposureMode:AVCaptureExposureModeAutoExpose]; 
      [device unlockForConfiguration]; 
      NSLog(@"Exposure point of intereset has been set to (%f,%f)",point.x, point.y); 
     } 
    } 
} 

然而,自動曝光在所需點只是從來沒有發生過。在我使用下面的NSLog進行調試時,原來不支持AVCaputreExposureModeAutoExpose。而如果我使用AVCaptureExposureModeContinuousAutoExpose,它將完美運行。

我不明白這一點;這是真的,這個AVCaputreExposureModeAutoExpose不支持iPhone 5的背部攝像頭運行iOS7?任何人有任何線索?謝謝!

調試代碼:

​​

回答

2

我貼在蘋果開發者論壇這個問題,並得到了由布拉德·福特(核心媒體工程)在蘋果的WWDC揚聲器相機與AV基金會回答。

這是他的answer

正確的。 AVCaptureExposureModeAutoExpose在 標頭中定義,目前尚未在任何iOS設備上實現。

可以 但是通過設置所需的 興趣點,然後調用 setExposureMode實現它在自己的代碼:AVCaptureExposureModeContinuousAutoExposure,然後 聽(鍵 - 值觀察) AVCaptureDevice向「isAdjustingExposure」屬性知道曝光何時完成調整。就像它一樣,儘快 將setExposureMode設置爲AVCaptureExposureModeLocked。

+0

相關鍵實際上是「調整曝光」。 – nrj