Start der Erfassung: Einbindung in den Lebenszyklus des Publishers
- Verwendung des benutzerdefinierten Erfassers im Publisher
Wo auch immer Sie Ihren Verlag erstellen (z. B. in MainActivity oder einen speziellen Anrufmanager), übergeben Sie eine Instanz des benutzerdefinierten Erfassers an die Publisher.Builder:
publisher = Publisher.Builder(this@MainActivity)
.capturer(
MirrorVideoCapturer(
this@MainActivity,
Publisher.CameraCaptureResolution.HIGH,
Publisher.CameraCaptureFrameRate.FPS_30
)
)
.build()
Nachdem Sie eine Publisher und stellen Ihre MirrorVideoCapturer Instanz - alle ausgehenden Videos für diesen Publisher stammen von Ihrem benutzerdefinierten Capturer statt vom Standard-Capturer.
- Sobald Sie einen Publisher mit Ihrem benutzerdefinierten Capturer erstellen und die
session.publish(Publisher), ruft das SDK den CapturerstartCapture()Methode.
@Synchronized
override fun startCapture(): Int {
Log.d(TAG, "startCapture() enter (cameraState: $cameraState)")
val resume = Runnable {
initCamera()
scheduleStartCapture()
}
when (cameraState) {
CameraState.CLOSING -> executeAfterClosed = resume
CameraState.CLOSED -> resume.run()
else -> scheduleStartCapture()
}
Log.d(TAG, "startCapture() exit")
return 0
}
Der allgemeine Ablauf ist wie folgt:
Kamerastatus prüfen: Sicherstellen, dass die zugrunde liegende Kameraressource initialisiert und bereit ist. Start der Erfassungsschleife: Öffnen Sie die Kamera (falls nicht bereits geöffnet). Starten Sie eine wiederholte Aufnahmeanforderung (Camera2) oder starten Sie die Vorschau-Pipeline (CameraX / Camera1). Behandlung von "noch nicht fertigen" Fällen: Wenn die Einrichtung der Kamera noch nicht abgeschlossen ist, stellen Sie den eigentlichen Start in die Warteschlange, bis die Kamera geöffnet ist (um Wettlaufbedingungen zu vermeiden). Fehlerbehandlung: Wenn etwas grundlegend falsch ist (z. B. startCapture zu früh aufgerufen), wird ein Fehler ausgelöst oder signalisiert.
Nachdem startCapture() erfolgreich war, beginnt Ihr Capturer, Kamerabilder zu empfangen und sie an das SDK zu übertragen.
Einfache Videoaufnahme
Erfahren Sie, wie Sie mit dem Vonage Video SDK einen einfachen Video-Capturer einrichten.