iOS 8:相机:手动EV滑块

时间:2015-05-18 11:59:58

标签: ios camera avfoundation avcapturedevice

先决条件: iOS 8,原生应用 任务:开发显示在摄像机视图上方的滑块。滑块必须更换相机的 EV 。最低值到可能的最高值。

问题:

  1. 如何通过iOS SDK中的ISO和快门速度计算最大可能/最小可能/当前EV值? (我有吗?)这是了解滑块相对于其滑块的步骤所必需的。运动。
  2. 如何在滑块移动时正确设置EV值?据我所知,我可以改变ISO和快门速度。我应该如何使用它们来改变EV的价值?滑块移动时最小到最大?

2 个答案:

答案 0 :(得分:0)

来到这里以答案结束这个问题。

这些教程和开源示例代码完全理解了如何实现最初查询的内容:

  1. 关于相机手动控制的Nice Xamarin教程。完全适用于原生https://developer.xamarin.com/guides/ios/platform_features/intro_to_manual_camera_controls/
  2. 观看有关自定义相机控件的官方Apple视频:https://developer.apple.com/videos/play/wwdc2014/508/
  3. 获取演示文稿:http://devstreaming.apple.com/videos/wwdc/2014/508xxfvaehrll14/508/508_camera_capture_manual_controls.pdf
  4. 试试他们的精彩样品: 4.1。 AvCamManual https://developer.apple.com/library/ios/samplecode/AVCamManual/Introduction/Intro.html 4.2。和BracketStripes https://developer.apple.com/library/ios/samplecode/BracketStripes/Introduction/Intro.html
  5. 现在你装满了。

    以下是我们提供的结果:https://itunes.apple.com/us/app/slidecam/id1046798471?mt=8

答案 1 :(得分:0)

只需使用此代码,您就可以设置自定义相机的EV值。确保滑块的值介于-8到8之间。

- (IBAction)changeValueOfEVSliderAction:(id)sender
{
    UISlider *control = sender;
    NSError *error = nil;
    AVCaptureDevice *videoDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

    if ( [videoDevice lockForConfiguration:&error] ) {
        [videoDevice setExposureTargetBias:control.value completionHandler:nil];
        [videoDevice unlockForConfiguration];
        //self.exposureTargetBiasValueLabel.text = [NSString stringWithFormat:@"%.1f", control.value];
    }
}

作为@DaddyM的回答,请参阅此AVCamManual: Extending AVCam to Use Manual Capture API了解更多详情。