2016-12-25 18 views
1

カメラを使用するアプリケーションを作成しようとしていますが、次のコードでは、単に白い画面が表示されます。アプリが開くと、カメラが表示されます。カスタムカメラ、白い画面// swift 3

import UIKit 
import AVFoundation 
import Foundation 

@IBOutlet var cameraView: UIView! 

var captureSession : AVCaptureSession? 
var stillImageOutput : AVCaptureStillImageOutput? 
var previewLayer : AVCaptureVideoPreviewLayer? 

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 
    captureSession = AVCaptureSession() 
    captureSession?.sessionPreset = AVCaptureSessionPreset1920x1080 

    let backCamera = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo) 


    do { 

     let input = try! AVCaptureDeviceInput (device: backCamera) 
     if (captureSession?.canAddInput(input) != nil) { 

      captureSession?.addInput(input) 

      stillImageOutput = AVCaptureStillImageOutput() 
      stillImageOutput?.outputSettings = [AVVideoCodecKey: AVVideoCodecJPEG] 

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

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

    } 
} 


    override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 
    previewLayer?.frame = cameraView.bounds 
} 

このコードでは、使用しているカメラの代わりに白い画面が表示されます。ありがとうございました。

答えて

0

誰かが実際にこれに答えてから、答えを削除しました。それは "あなたは許可しなかった"と言った。彼は正しかったです。 「Targetsにオーバー行き、アプリをタップ>その隣青写真でプロジェクトをクリック >と言うべきものを見て:これを有効にする方法

はで見つけることができる(あなたのinfo.plistに行くことですカスタムiOSターゲットのプロパティ」を参照してください)。

ここに来たら、リストの一番下に移動して最後のものにカーソルを合わせます(私の場合は「必須のデバイス機能」でした)。 「プライバシー - カメラの使用説明」と名前をつけて、隣にあるボックスに「app nameはカメラを使用したい... [xyz]」

これで解決します。私の問題は解決しました。この投稿から私の参考文献を得ました。 NSCameraUsageDescription in iOS 10.0 runtime crash?