2016-07-27 12 views
0

私はカメラを開き、録画されているものを表示するSwift OsXアプリケーションを作ろうとしています。AVCaptureVideoPreviewLayerが表示されないのはなぜですか?

現在のところ、文字通りはViewControllerの1つです。緑色のライトが点灯し、録音が開始されていると思われますが、画面はグレーのままで何も表示されません。ここで

ViewControllerのためのコードです:

class ViewController: NSViewController, AVCaptureVideoDataOutputSampleBufferDelegate { 

    let session = AVCaptureSession() 
    let device = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo) 

    @IBOutlet weak var imgView: NSImageView! 

    func setUpSession() { 
     self.session.sessionPreset = AVCaptureSessionPresetLow 

     // Add the default input camera 
     do { 
      let input = try AVCaptureDeviceInput(device: device) 
      self.session.addInput(input) 
      print("Input added.") 
     } catch let error as NSError { 
      print(error) 
     } 

     var previewLayer = AVCaptureVideoPreviewLayer(session: session) 
     previewLayer.frame = self.view.bounds 
     previewLayer.position = CGPointMake(0, 0) 
     previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill 

     self.view.layer = previewLayer 
     self.session.startRunning() 
     print("Session running.") 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.setUpSession() 
    } 

    override var representedObject: AnyObject? { 
     didSet { 
      // Update the view, if already loaded. 
     } 
    } 
} 

答えて

1

はview.layer.addSublayer(previewLayer)

+0

はどちらか動作しません試してみてください。まだ白い灰色の画面です。実際、緑色のカメラライトは、self.view.layer = previewLayerの代わりにこの行を使用すると点灯します。 – djm1997

+0

あなたはos xのために使用しますか?そして、なぜUIImageViewが必要ですか? – mafioso

+0

はい、これはOS Xアプリケーション用です。私はUIImageViewを追加し、ViewControllerが動作していることを確認するためにレンダリングしました。 – djm1997

関連する問題