2016-05-31 1 views
2

Je rencontre un problème lors de la création d'une session de capture dans un UIView personnalisé. Je mets le délégué comme celui-ciUn AVCaptureFileOutputRecordingDelegate peut-il être ajouté à une sous-classe UIView?

class Camera: UIView, AVCaptureFileOutputRecordingDelegate, AVAudioRecorderDelegate { 
} 

et je mets tout en charge et le délégué comme celui-ci

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() 
       } 
      } 
     } 
    } 

et tout va bien. Cependant, dans la fonction 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)") 
     } 

... 

Le hic est levée lorsque je tente d'ajouter l'entrée du dispositif de capture et là pour elle n'est pas ajoutée et je ne peux pas comprendre pourquoi.

Tout mon code que j'utilise actuellement fonctionnait bien avant que je l'avais dans un UIViewController mais quand je l'ai basculé sur une sous-classe de UIView il a cessé de fonctionner. Toute aide serait appréciée si plus de code est nécessaire faites-moi savoir merci!

+0

Pouvez-vous imprimer l'exception est pris et éditer votre message? –

+0

Quoi? Je ne reçois aucune erreur avec ce code –

+0

Lorsque vous avez dit "la prise est lancée" voulez-vous dire que vous voyez "dang" imprimé dans la console? Si oui, une exception est levée –

Répondre

2

I figured it out l'appareil iOS que j'utilisais ne pas la caméra activée pour une raison quelconque il pour l'entrée ne pouvait être ajoutée qui fait la couche de prévisualisation incapable de capturer toutes les données