在Swift中使用按钮切换相机

在Swift中使用按钮切换相机,第1张

概述这似乎可以将相机从后面切换到前面,但我正在尝试提出一个’if’语句,以便我也可以将其切换回来.任何想法或建议? @IBAction func didTouchSwitchButton(sender: UIButton) { let camera = getDevice(.Front) let cameraBack = getDevice(.Back) do { 这似乎可以将相机从后面切换到前面,但我正在尝试提出一个’if’语句,以便我也可以将其切换回来.任何想法或建议?

@IBAction func dIDtouchSwitchbutton(sender: UIbutton) {    let camera = getDevice(.Front)    let cameraBack = getDevice(.Back)    do {        input = try AVCaptureDeviceinput(device: camera)    } catch let error as NSError {        print(error)        input = nil    }    if(captureSession?.canAddinput(input) == true){        captureSession?.addinput(input)        stillimageOutput?.outputSettings = [AVVIDeoCodecKey : AVVIDeoCodecJPEG]        if(captureSession?.canAddOutput(stillimageOutput) == true){            captureSession?.addOutput(stillimageOutput)            prevIEwLayer = AVCaptureVIDeoPrevIEwLayer(session: captureSession)            prevIEwLayer?.frame = cameraview.bounds            cameraview.layer.addSublayer(prevIEwLayer!)            captureSession?.startRunning()        }    }

}

解决方法
func switchCamera(_ sender: UIbutton) {    if let session = AVCaptureSession() {        let currentCamerainput: AVCaptureinput = session.inputs[0]        session.removeinput(currentCamerainput)        var newCamera: AVCaptureDevice        newCamera = AVCaptureDevice.default(for: AVMediaType.vIDeo)!            if (currentCamerainput as! AVCaptureDeviceinput).device.position == .back {                UIVIEw.Transition(with: self.cameraview,duration: 0.5,options: .TransitionFlipFromleft,animations: {                    newCamera = self.cameraWithposition(.front)!                },completion: nil)            } else {                UIVIEw.Transition(with: self.cameraview,options: .TransitionFlipFromright,animations: {                    newCamera = self.cameraWithposition(.back)!                },completion: nil)            }            do {                try self.captureSession?.addinput(AVCaptureDeviceinput(device: newCamera))            }            catch {                print("error: \(error.localizedDescription)")            }    }}func cameraWithposition(_ position: AVCaptureDevice.position) -> AVCaptureDevice? {    let deviceDescoverySession = AVCaptureDevice.discoverySession.init(deviceTypes: [AVCaptureDevice.DeviceType.builtInWIDeAngleCamera],mediaType: AVMediaType.vIDeo,position: AVCaptureDevice.position.unspecifIEd)    for device in deviceDescoverySession.devices {        if device.position == position {            return device        }    }    return nil}
总结

以上是内存溢出为你收集整理的在Swift中使用按钮切换相机全部内容,希望文章能够帮你解决在Swift中使用按钮切换相机所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1003927.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存