无法为iOS自定义相机添加输出

时间:2016-12-20 19:20:30

标签: ios swift camera output

直到最近,我的自定义相机工作正常。但是,我最近收到了一个错误(可能升级到Xcode 8.2和8.2.1)。我有以下代码来加载相机:

func reload() {


    captureSession?.stopRunning()
    previewLayer?.removeFromSuperlayer()
    captureSession = AVCaptureSession()

    captureSession!.sessionPreset = AVCaptureSessionPresetPhoto

    let captureDevice = AVCaptureDevice.defaultDevice(withDeviceType: .builtInWideAngleCamera, mediaType: AVMediaTypeVideo, position: direction)

    var input = AVCaptureDeviceInput()

    do {
        input = try AVCaptureDeviceInput(device: captureDevice)
    } catch {
        print("error")
        return
    }

    DispatchQueue.global(qos: .default).async {
        if self.captureSession!.canAddInput(input) == true {
            self.captureSession!.addInput(input)

            if self.captureSession!.canAddOutput(self.cameraOutput) {
                self.captureSession!.addOutput(self.cameraOutput)
                self.previewLayer = AVCaptureVideoPreviewLayer(session: self.captureSession)
                self.previewLayer!.videoGravity = AVLayerVideoGravityResizeAspectFill
                self.previewLayer!.connection?.videoOrientation = .portrait
                self.previewLayer?.frame = self.bounds
                DispatchQueue.main.async {
                    self.layer.addSublayer(self.previewLayer!)
                    self.captureSession!.startRunning()
                    self.clickedImage = nil
                    self.bringSubview(toFront: self.rotateButton)
                }
            } else {
                print("cannot add ouput")
            }
        } else {
            print("cannot add input")
        }

        DispatchQueue.main.async {
            self.bringSubview(toFront: self.rotateButton)
        }


    }

}

由于某种原因,它会在调试日志中保持打印“无法添加输出”。我尝试使用this SO post解决此问题,但仍无法正常运行。有谁知道这意味着什么以及如何解决它?谢谢!

0 个答案:

没有答案