2016-05-31 3 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 장비를 걷어 낸

관련 문제