使用GPUImage框架时如何调整焦点

时间:2016-02-22 12:23:48

标签: ios gpuimage

我在我的项目中使用GPUImage frameWork。但我不知道如何调整相机的焦点。有没有api可以在框架或其他方式做到这一点?

1 个答案:

答案 0 :(得分:1)

这是斯威夫特的答案。在GPUImage中,GPUImageVideoCamera类几乎包含整个AVFoundation摄像头管道。所以通常在AVFoundation中调整相机焦点你会说:

var camera = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
var focus: Float = 0.5

do {
    try camera.lockForConfiguration()
    camera.setFocusModeLockedWithLensPosition(focus, completionHandler: nil)
    camera.unlockForConfiguration()
} catch let error as NSError {
    print(error)
}

在GPUImage中,AVCaptureDevice被包含为inputCamera类的GPUImageVideoCamera实例属性,所以你会说:

var camera = GPUImageVideoCamera(sessionPreset: AVCaptureSessionPresetHigh, cameraPosition: .Back)
var focus: Float = 0.5

do {
    try camera.inputCamera.lockForConfiguration()
    camera.inputCamera.setFocusModeLockedWithLensPosition(focus, completionHandler: nil)
    camera.inputCamera.unlockForConfiguration()
} catch let error as NSError {
    print(error)
}

以同样的方式更改AVCaptureFocusMode