2016-05-29 43 views
-1

カメラビューを表示しようとしていますが、下のコードで見るようにエラーが表示されるように設定していますが、このコードを実行すると、エラーは発生せず、カメラビューも表示されます。私は実際の電話でそれを実行していて、電話機はカメラを使用する許可があれば要求しました。以下はコードですエラーは表示されませんが機能は実行されません

override func viewWillAppear(animated: Bool) { 
    super.viewWillAppear(animated) 

    captureSession = AVCaptureSession() 
    captureSession?.sessionPreset = AVCaptureSessionPreset1920x1080 

    let backCamera = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo) 
    var input : AVCaptureDeviceInput? 
    let error : NSError? 
    do { 
     input = try AVCaptureDeviceInput(device: backCamera) 
    } catch let error as NSError? { 
     print(error) 



     if error == nil && (captureSession?.canAddInput(input))!{ 
      captureSession?.addInput(input) 

      videoOutput = AVCaptureVideoDataOutput() 
      //videoOutput?.outputSettings = [AVVideoCodecKey : AVVideoCodecKey] 

       if ((captureSession?.canAddOutput(videoOutput)) != nil){ 
        captureSession?.addOutput(videoOutput) 

        previewLayer = AVCaptureVideoPreviewLayer(session: captureSession) 
        previewLayer?.videoGravity = AVLayerVideoGravityResizeAspect 
        previewLayer?.connection.videoOrientation = AVCaptureVideoOrientation.Portrait 
        cameraView.layer.addSublayer(previewLayer!) 
        captureSession?.startRunning() 
      } 
     } 
    } 

} 
+0

'print(error)'行の後でcatchブロックを閉じなかったので、エラーがスローされない限り、実行したいコードは決して実行されません。 –

答えて

0

catchにコードを入れないでください。それは何かがうまくいかない場合です。

1

エラーが発生した場合にのみ、catch本体が実行されます。あなたのコードはcatchブロック内にあるので、エラーが見つからないので実行しません。 したがって、catchブロックからコードを削除し、@ pedathebossが示唆するように外側に配置します。

関連する問題