Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在Swift中使用按钮切换相机大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

这似乎可以将相机从后面切换到前面,但我正在尝试提出一个’if’语句,以便我也可以将其切换回来.任何想法或建议? @IBACtion func didTouchSwitchButton(sender: UIButton) { let camera = getDevice(.Front) let cameraBACk = getDevice(.BACk) do {
@H_502_6@ 这似乎可以将相机从后面切换到前面,但我正在尝试提出一个’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
}
@H_262_32@

大佬总结

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

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。