Swift

Initialisation de la capture

Dans cet exemple, l'appli utilise un capteur vidéo personnalisé pour publier des pixels aléatoires (bruit blanc). Il s'agit simplement d'illustrer les principes de base de la mise en place d'un capteur vidéo personnalisé.

Dans l'essentiel VonageVideoManageraprès avoir appelé session.publish(publisher, error: &error) pour initier la publication d'un flux audio-vidéo, le videoCapture de la propriété OTPublisher est remplacé par une instance de BasicVideoCapturer:

BasicVideoCapturer est une classe personnalisée qui met en œuvre la méthode OTVideoCapture (défini dans le SDK iOS de Vonage). Ce protocole vous permet de définir un capteur vidéo personnalisé qui sera utilisé par un éditeur OpenTok.

Les initCapture initialise les paramètres de capture à utiliser par le capteur vidéo personnalisé. Dans cet exemple, l'implémentation personnalisée de OTVideoCapture (OTKBasicVideoCapturer), le initCapture définit les propriétés de l'élément videoFormat propriété :

Les OTVideoFormat est définie par le SDK iOS de Vonage. Dans cet exemple de code, le format du capteur vidéo est défini pour utiliser ARGB comme format de pixel, avec un nombre spécifique d'octets par ligne, hauteur et largeur.

Les videoCaptureConsumer définit un OTVideoCaptureConsumer que le consommateur vidéo utilise pour transmettre des images vidéo au flux de l'éditeur. Dans le cas d'un BasicVideoCapturercette propriété est synthétisée à partir du protocole :

Capture de départ

Les start est appelée lorsqu'un éditeur commence à capturer une vidéo pour l'envoyer en tant que flux à la session Vonage. Cela se produit après que la méthode Session.publish(_:error:) est appelée. Dans la BasicVideoCapturerCette méthode déclenche produceFrame sur une file d'attente en arrière-plan :

Personnalisation du cadre

Les produceFrame génère un OTVideoFrame qui représente une image vidéo. Dans ce cas, le cadre contient des pixels aléatoires remplissant la hauteur et la largeur définies :

La méthode transmet le cadre à la fonction consumeFrame de la méthode OTVideoCaptureConsumer. L'éditeur envoie alors la trame de données au flux vidéo de la session.