2017-02-09 16 views
1

Я пытаюсь захватить изображение и установить его в UIImageView, следовательно, создать камеру у меня есть следующий код:Захват изображения и установка его в 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") 
    } 
} 
} 

По какой-то причине, оператор печати " обнаружение видеосигнала "не вызвано, хотя камера работает

Кто-нибудь еще знает, почему?

ответ

1

В, если даного из .canAddOutput (stillImageOutput) изменения captureSession captureSession? .canAddOutput (stillImageOutput) до .addOutput