2014-06-22 80 views
4

我想知道什么AVCaptureDevice设置是iPhone上的相机应用程序。特别是AVCaptureExposureMode,AVCaptureFocusMode和AVCaptureWhiteBalanceMode。我正在尝试制作自定义相机,出于某种原因,我无法使照片的光线在对焦时正确更改。我为我的相机设置了ExposurePointOfInterest和FocusPointOfInterest,但出于某种原因,它好像照相机正确对焦,但照明不会在我点击时聚焦。当我点击一个黑暗区域时,它不会像照相机应用程序中那样变亮。有没有我忘记设置的设置?这是我用于对焦相机的代码。什么是iPhone上的摄像头应用程序的AVFoundation AVCaptureDevice设置?

CGPoint touchPoint = [gesture locationInView:collectView]; 
float focus_x = touchPoint.x/collectView.frame.size.width; 
float focus_y = touchPoint.y/collectView.frame.size.height; 
NSError *tError = nil; 
NSLog(@"previous: %.2f, %.2f", backCamera.focusPointOfInterest.x, backCamera.focusPointOfInterest.y); 
if (isFrontCamera) { 
    focus_x = collectView.frame.size.width - focus_x; //the view is mirrored for the front camera 
    if ([frontCamera lockForConfiguration:&tError]) { 
     if ([frontCamera isExposurePointOfInterestSupported]) { 
      [frontCamera setExposurePointOfInterest:CGPointMake(focus_x, focus_y)]; 
      if ([frontCamera isExposureModeSupported:AVCaptureExposureModeAutoExpose]) { 
       [frontCamera setExposureMode:AVCaptureExposureModeAutoExpose]; 
      } 
     } 
     if ([frontCamera isFocusPointOfInterestSupported]) { 
      [frontCamera setFocusPointOfInterest:CGPointMake(focus_x, focus_y)]; 
      if ([frontCamera isExposureModeSupported:AVCaptureExposureModeAutoExpose]) { 
       [frontCamera setExposureMode:AVCaptureExposureModeAutoExpose]; 
      } 
     } 
     if ([frontCamera isWhiteBalanceModeSupported:AVCaptureWhiteBalanceModeAutoWhiteBalance]) { 
      [frontCamera setWhiteBalanceMode:AVCaptureWhiteBalanceModeAutoWhiteBalance]; 
     } 
     [frontCamera unlockForConfiguration]; 
    } 
    else { 
     NSLog(@"Couldn't change focus point:%@",tError); 
    } 
} 
else { 
    if ([backCamera lockForConfiguration:&tError]) { 
     if ([backCamera isExposurePointOfInterestSupported]) { 
      [backCamera setExposurePointOfInterest:CGPointMake(focus_x, focus_y)]; 
      if ([backCamera isExposureModeSupported:AVCaptureExposureModeAutoExpose]) { 
       [backCamera setExposureMode:AVCaptureExposureModeAutoExpose]; 
      } 
     } 
     if ([backCamera isFocusPointOfInterestSupported]) { 
      [backCamera setFocusPointOfInterest:CGPointMake(focus_x, focus_y)]; 
      if ([backCamera isFocusModeSupported:AVCaptureFocusModeAutoFocus]) { 
       [backCamera setFocusMode:AVCaptureFocusModeAutoFocus]; 
      } 
     } 
     if ([backCamera isWhiteBalanceModeSupported:AVCaptureWhiteBalanceModeAutoWhiteBalance]) { 
      [backCamera setWhiteBalanceMode:AVCaptureWhiteBalanceModeAutoWhiteBalance]; 
     } 
     [backCamera unlockForConfiguration]; 
    } 
    else { 
     NSLog(@"Couldn't change focus point:%@",tError); 
    } 
} 

回答

0

This document有很多东西在里面,会部分回答你的问题。

希望这会有所帮助,因为我们不能告诉相机应用程序的每个属性的价值。

相关问题