2016-05-31 10 views
2

カスタムUIViewでキャプチャセッションを作成する際に問題が発生しています。私はこのAVCaptureFileOutputRecordingDelegateをサブクラスUIViewに追加できますか?

class Camera: UIView, AVCaptureFileOutputRecordingDelegate, AVAudioRecorderDelegate { 
} 

のようにデリゲートを設定し、私はすべてを設定し、この

self.recordingDelegate? = self 

    captureSession.sessionPreset = AVCaptureSessionPresetHigh 
    let devices = AVCaptureDevice.devices() 
    for device in devices { 
     if (device.hasMediaType(AVMediaTypeVideo)) { 
      if(device.position == AVCaptureDevicePosition.Back) { 
       captureDevice = device as? AVCaptureDevice 
       if captureDevice != nil { 
        beginSession() 
       } 
      } 
     } 
    } 

とすべてがうまくいくようにデリゲートを設定します。しかし、beginSession機能に:私は、キャプチャデバイスの入力を追加し、そこにそれが追加されていないと私は理由を把握することはできませんのためにしようとすると、

func beginSession() { 
     let err : NSError? = nil 
     do { 
      self.captureSession.addInput(try AVCaptureDeviceInput(device: self.captureDevice!)) 
     } 
     catch { 
      print("dang") 
     } 
     if err != nil { 
      print("error: \(err?.localizedDescription)") 
     } 

... 

キャッチがスローされます。

私が現在使用しているコードは、UIViewControllerの中に入れたときに正常に機能していましたが、UIViewのサブクラスに切り替えたときに機能しなくなりました。より多くのコードが必要な場合は、私はあなたに感謝を知らせてくれればどんな助けもありがとう!

+0

あなたは例外を印刷できることあなたの投稿を捕まえて編集しますか? –

+0

何ですか?このコードでエラーは発生しません –

+0

「キャッチがスローされた」と言ったとき、コンソールに「dang」と表示されていますか?もしそうなら、例外が投げられる –

答えて

2

は、私は、任意のデータをキャプチャするプレビュー層ができなく作られた追加することができませんでした入力のためにそこに何らかの理由で有効になってカメラを持っていませんでした使用していたiOSデバイスをそれを考え出し

関連する問題