Comment obtenir de caméra frontale, caméra arrière et audio avec AVCaptureDeviceDiscoverySession

Avant iOS 10 est sorti, j'ai été en utilisant le code suivant pour obtenir la capture vidéo et audio pour mon enregistreur vidéo:

 for device in AVCaptureDevice.devices()
 {
     if (device as AnyObject).hasMediaType( AVMediaTypeAudio )
     {
         self.audioCapture = device as? AVCaptureDevice
     }
     else if (device as AnyObject).hasMediaType( AVMediaTypeVideo )
     {
         if (device as AnyObject).position == AVCaptureDevicePosition.back
         {
             self.backCameraVideoCapture = device as? AVCaptureDevice
         }
         else
         {
             self.frontCameraVideoCapture = device as? AVCaptureDevice
         }
     }
 }

Quand iOS 10 est finalement sorti, j'ai reçu l'avertissement suivant lorsque j'ai été l'exécution de mon code. Notez que mon enregistreur vidéo était encore en train de doucement pendant environ 2 semaines.

appareils () " a été déprécié dans iOS 10.0: Utilisation AVCaptureDeviceDiscoverySession à la place.

Comme je l'ai été l'exécution de mon code ce matin, mon enregistreur vidéo cessé de travailler. xCode8 ne me donne pas toutes les erreurs, mais le previewLayer pour la capture de l'appareil photo est complètement blanc. Alors quand j'ai commencer l'enregistrement j'ai l'erreur suivante:

Erreur de Domaine=AVFoundationErrorDomain Code=-11800 "L'opération n'a pas pu être terminée" UserInfo={NSLocalizedDescription=L'opération n'a pas pu être terminée, NSUnderlyingError=0x17554440 {Erreur de Domaine=NSOSStatusErrorDomain Code=-12780 "(null)"}, NSLocalizedFailureReason=Une erreur inconnue s'est produite (-12780)}

Je crois qui a quelque chose à voir avec le fait que je suis en utilisant le obsolète approche AVCaptureDevice.devices(). Donc, je me demandais comment utiliser AVCaptureDeviceDiscoverySession à la place?

Merci pour votre aide d'avance!

InformationsquelleAutor AndreasLukas | 2016-10-06