有没有办法以编程方式将iOS设备的相机对焦设置为无限?

我正在创build一个应用程序来locking摄像机焦点以进行video录制。 我想locking焦点到无穷无需用户手动调整焦点。 这可能吗? 谢谢!

这是禁用焦点的方式,它始终locking它:

// Find a suitable capture device AVCaptureDevice *cameraDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; // SETUP FOCUS MODE if ([cameraDevice lockForConfiguration:nil]) { [cameraDevice setFocusMode:AVCaptureFocusModeLocked]; [cameraDevice unlockForConfiguration]; } else{ NSLog(@"error while configuring focusMode"); } 

你是什​​么意思“把焦点locking到无限”?

可悲的是没有。 正如Artem所说,您可以将相机设置为对焦locking模式; 进入自动对焦模式(对焦,然后locking)或连续自动对焦模式,但不能给相机一个特定的距离来对焦。

我已经能够提出的最好的(对于曝光和白平衡控制,其类似地受到限制)是让用户将相机指向适当的场景(在你的情况下,远处),并且让他/她按一下lockingbutton。

捕获设备API的详细信息,如: https : //developer.apple.com/library/mac/#documentation/AVFoundation/Reference/AVCaptureDevice_Class/Reference/Reference.html

AVCaptureDevice有函数setFocusModeLockedWithLensPosition:completionHandler:

你可以使用它来设置1.0以达到“无限”距离

  func focusTo(value : Float) { if let device = captureDevice { if(device.lockForConfiguration(nil)) { device.setFocusModeLockedWithLensPosition(value, completionHandler: { (time) -> Void in // }) device.unlockForConfiguration() } } 

更新:根据苹果公司的文档1.0不代表无限的焦点。

Interesting Posts