0

我正在开发一个相机基础应用程序。在以前的版本中它可以工作,但现在我几乎找不到答案。我读过 AVCaptureStillImageOutput 已被弃用。感谢你的回答。

        let devices = AVCaptureDevice.devices().filter{ $0.hasMediaType(AVMediaTypeVideo) && $0.position == AVCaptureDevicePosition.Front }
    if let captureDevice = devices.first as? AVCaptureDevice  {
        do {
            let input = try AVCaptureDeviceInput.init(device: captureDevice)
            captureSession.addInput(input)
        } catch _ {
            print("error: \(error?.localizedDescription)")
        }

        captureSession.sessionPreset = AVCaptureSessionPresetPhoto
        captureSession.startRunning()
        stillImageOutput.outputSettings = [AVVideoCodecKey:AVVideoCodecJPEG]
        if captureSession.canAddOutput(stillImageOutput) == true{
            captureSession.addOutput(stillImageOutput)
        }

        if let previewLayer = AVCaptureVideoPreviewLayer(session: captureSession) {
            previewLayer.bounds = view.bounds
            previewLayer.position = CGPointMake(view.bounds.midX, view.bounds.midY)
            previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
            cameraPreview = UIView(frame: CGRectMake(0.0, 20.0, view.bounds.size.width, view.bounds.size.height))
            cameraPreview.layer.addSublayer(previewLayer)
        }
    }
4

0 回答 0