Starten der Erfassung
startCapture() ist die nächste Methode, die wir implementieren müssen. Sie wird vom SDK aufgerufen, wenn der Publisher mit dem Capturing beginnt (z.B. nach Session.publish(publisher)). Damit sollte Ihre Aufnahmeschleife oder Ihr Hörer starten. Wie Sie sehen werden, werden die Frames hier von ImageReader.setOnImageAvailableListeneralso startCapture() wird vor allem signalisieren, dass die Erfassung aktiv ist.
Lebenszyklus:
init()- ErstellenImageReaderund starten Sie einen Hintergrundfaden. DieImageReaderbietet eineSurfacedassVirtualDisplayverwandelt sich in.createVirtualDisplay()- Erstellen einerVirtualDisplayunterstützt von derImageReaderOberfläche. Der Bildschirminhalt wird auf dieser Anzeige wiedergegeben.startCapture()- Wird aufgerufen, wenn der Publisher startet. Markiert die Erfassung als aktiv.stopCapture()- Geben Sie die virtuelle Anzeige frei, beenden Sie die Medienprojektion und räumen Sie auf.
Einspeisung von Frames in das SDK
Wenn das System einen neuen Frame in die VirtualDisplay, ImageReader liefert es über onImageAvailable:
Die provideIntArrayFrame Methode, definiert durch den BaseVideoCapturer Klasse, sendet ein ganzzahliges Datenfeld an den Herausgeber, das für das nächste veröffentlichte Videobild verwendet wird.
Wenn der Herausgeber immer noch Videos aufnimmt, wird der Thread nach einer weiteren 1/15-Sekunde erneut gestartet, so dass der Aufzeichner den Herausgeber weiterhin mit neuen Videobildern zur Veröffentlichung versorgt.
Bildschirmfreigabe
Erfahren Sie, wie Sie mit der Vonage Video API-Plattform eine Screensharing-Funktion implementieren können.