Swift

Capture d'images vidéo

Cet exemple vous montre comment utiliser un capteur vidéo personnalisé en utilisant la caméra de l'appareil comme source vidéo. Pour utiliser l'implémentation de la caméra, instanciez le capteur de caméra dans votre fichier VonageVideoManager:

Initialisation et configuration du capteur vidéo

L'initialisateur appelle size(from:) pour déterminer la résolution et met en place une file d'attente sérielle pour la capture des images, afin de ne pas affecter la file d'attente de l'interface utilisateur.

La mise en œuvre de la initCapture utilise le AVFoundation pour configurer l'appareil photo afin de capturer des images. Il crée un AVCaptureSession, définit le périphérique d'entrée, et configure un AVCaptureVideoDataOutput:

Les images capturées à l'aide de cette méthode sont accessibles par l'intermédiaire de la fonction AVCaptureVideoDataOutputSampleBufferDelegate.

La deuxième partie de la initCapture configure la fréquence d'images :

Les bestFrameRate(for:) renvoie la meilleure fréquence d'images pour le dispositif de capture :

Capturer des images pour la vidéo de l'éditeur

Les start démarre la méthode AVCaptureSession:

La méthode de délégation captureOutput(_:didOutput:from:) est appelée lorsqu'une nouvelle image vidéo est disponible.

Cette méthode permet d'effectuer les opérations suivantes :

  1. Crée un OTVideoFrame instance.
  2. Alloue un tampon de mémoire.
  3. Copie les données d'image de l'écran CVImageBuffer (format NV12) dans la mémoire tampon manuelle. Le format NV12 comporte deux plans (Y et UV), qui sont copiés de manière séquentielle.
  4. Marque l'image avec un horodatage et une orientation.
  5. Appels consumeFrameet transmet le cadre au SDK de Vonage.