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!
Pouvez-vous imprimer l'exception est pris et éditer votre message? –
Quoi? Je ne reçois aucune erreur avec ce code –
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 –