gpt4 book ai didi

ios - AVFoundation- 相机切换一次,且仅一次

转载 作者:搜寻专家 更新时间:2023-11-01 06:22:54 25 4
gpt4 key购买 nike

我找到了 this great thread here在 StackOverflow 上,并用它在 Swift 中编写了我的 switchCamera 函数。

我已经让它工作了,所以当我按下我的按钮时,摄像头会切换到后置摄像头。但是,一旦我再次按下它,它就不会切换回前置摄像头。我在不允许再次切换相机的代码中做错了什么?

一个额外的注意事项:当我翻译上面线程中提到的代码时,我无法在我的 cameraWithPosition() 中返回 nil。不确定这是否是导致我出现问题的原因。

我的代码:

@IBAction func switchCamera(sender: UIButton) {
let currentCameraInput: AVCaptureInput = session.inputs[0] as! AVCaptureInput
session.removeInput(currentCameraInput)

let newCamera: AVCaptureDevice?
if(captureDevice!.position == AVCaptureDevicePosition.Back){
println("Setting new camera with Front")
newCamera = self.cameraWithPosition(AVCaptureDevicePosition.Front)
} else {
println("Setting new camera with Back")
newCamera = self.cameraWithPosition(AVCaptureDevicePosition.Back)
}

let newVideoInput = AVCaptureDeviceInput(device: newCamera!, error: nil)
if(newVideoInput != nil) {
session.addInput(newVideoInput)
} else {
println("Error creating capture device input")
}

session.commitConfiguration()

}

func cameraWithPosition(position: AVCaptureDevicePosition) -> AVCaptureDevice {
let devices = AVCaptureDevice.devices()
for device in devices {
if(device.position == position){
return device as! AVCaptureDevice
}
}
return AVCaptureDevice()
}

最佳答案

在我发布问题 5 分钟后,我弄明白了,哈哈。

我的问题是我没有将我的初始 captureDevice 设置为等于我称为 newCamera 的新创建的 AVCaptureDevice。

为了解决这个问题,我只是在 switchCamera() 的末尾做了这个......

captureDevice! = newCamera!

关于ios - AVFoundation- 相机切换一次,且仅一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30141940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com