【问题标题】:Capturing image and setting it to UIImageView捕获图像并将其设置为 UIImageView
【发布时间】:2017-02-09 20:21:14
【问题描述】:

我正在尝试捕获图像并将其设置为 UIImageView,因此要创建相机,我有以下代码:

class HomeController: BaseController, UIImagePickerControllerDelegate {

var detector: AFDXDetector?
var captureSession : AVCaptureSession?
var stillImageOutput : AVCapturePhotoOutput?
var previewLayer : AVCaptureVideoPreviewLayer?
var camera : AVCaptureDevice!

@IBOutlet weak var cameraBtn: UIButton!
@IBOutlet weak var cameraView: UIView!
@IBOutlet weak var cameraImageView: UIImageView!

    override func viewDidLoad() {
      super.viewDidLoad()
      startCamera()
    }

    func startCamera() {

    do {

        captureSession = AVCaptureSession()
        camera = AVCaptureDevice.defaultDevice(withDeviceType: .builtInWideAngleCamera, mediaType: AVMediaTypeVideo, position: .front)
        captureSession?.sessionPreset = AVCaptureSessionPreset1280x720

        let input = try AVCaptureDeviceInput(device: camera)

        if (captureSession?.canAddInput(input))!{
            captureSession?.addInput(input)
            stillImageOutput = AVCapturePhotoOutput()

            if (captureSession?.canAddOutput(stillImageOutput))!{
                print("output added")
                captureSession?.canAddOutput(stillImageOutput)
                previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
                previewLayer?.videoGravity = AVLayerVideoGravityResizeAspect
                previewLayer?.connection.videoOrientation = AVCaptureVideoOrientation.portrait
                cameraView.layer.addSublayer(previewLayer!)
                captureSession?.startRunning()
            }
        }

    } catch {

    }
}


@IBAction func cameraBtnPressed(_ sender: Any) {
   if (stillImageOutput?.connection(withMediaType: AVMediaTypeVideo)) != nil
    {
        print("video connection detected")
    }
}
}

由于某种原因,尽管相机正在工作,但打印语句“检测到视频连接”并未被调用

还有人知道为什么吗?

【问题讨论】:

    标签: ios camera uiimageview


    【解决方案1】:

    在 captureSession?.canAddOutput(stillImageOutput) 的 if 语句中将 captureSession?.canAddOutput(stillImageOutput) 更改为 .addOutput

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多