Swift

Initialisierung der Erfassung

In diesem Beispiel verwendet die Anwendung einen benutzerdefinierten Video-Capturer, um zufällige Pixel (weißes Rauschen) zu veröffentlichen. Dies dient lediglich zur Veranschaulichung der grundlegenden Prinzipien der Einrichtung eines benutzerdefinierten Video-Capturers.

In der Hauptsache VonageVideoManagernach dem Aufruf session.publish(publisher, error: &error) um die Veröffentlichung eines Audio-Video-Streams zu veranlassen, die videoCapture Eigenschaft der OTPublisher Objekt wird auf eine Instanz von BasicVideoCapturer:

BasicVideoCapturer ist eine benutzerdefinierte Klasse, die die OTVideoCapture Protokoll (definiert im Vonage iOS SDK). Mit diesem Protokoll können Sie einen benutzerdefinierten Video-Capturer definieren, der von einem OpenTok-Publisher verwendet wird.

Die initCapture Methode initialisiert die Aufnahmeeinstellungen, die vom benutzerdefinierten Video-Capturer verwendet werden sollen. In der benutzerdefinierten Implementierung dieses Beispiels von OTVideoCapture (OTKBasicVideoCapturer), die initCapture Methode setzt Eigenschaften der videoFormat Eigentum:

Die OTVideoFormat Klasse ist durch das Vonage iOS SDK definiert. In diesem Beispielcode ist das Format des Video-Capturers so eingestellt, dass ARGB als Pixelformat verwendet wird, mit einer bestimmten Anzahl von Bytes pro Zeile, Höhe und Breite.

Die videoCaptureConsumer Eigenschaft setzt eine OTVideoCaptureConsumer Objekt, das der Videokonsument zur Übertragung von Videobildern an den Stream des Herausgebers verwendet. Unter BasicVideoCapturerwird diese Eigenschaft aus dem Protokoll synthetisiert:

Start der Erfassung

Die start Methode wird aufgerufen, wenn ein Publisher mit der Aufnahme von Videos beginnt, um diese als Stream an die Vonage-Sitzung zu senden. Dies geschieht, nachdem die Session.publish(_:error:) Methode aufgerufen wird. In der BasicVideoCapturerlöst diese Methode Folgendes aus produceFrame in einer Warteschlange im Hintergrund:

Rahmenanpassung

Die produceFrame Methode erzeugt eine OTVideoFrame Objekt, das ein Einzelbild eines Videos darstellt. In diesem Fall enthält der Rahmen zufällige Pixel, die die festgelegte Höhe und Breite ausfüllen:

Die Methode übergibt den Rahmen an die consumeFrame Methode der OTVideoCaptureConsumer. Dies veranlasst den Herausgeber, das Datenbild an den Videostream in der Sitzung zu senden.