Kotlin

Creación del «Mirror Video Capturer»

Tenemos que crear un MirrorVideoCapturer, su función es:

  • abrir y configurar la cámara,
  • coger fotogramas de la cámara,
  • reflejar los fotogramas horizontalmente,
  • envía esos cuadros al SDK de Vonage como video del editor.
  1. Crear un archivo kotlin separado con el MirrorVideoCapturer

Como el archivo es bastante grande, copia el contenido del MirrorVideoCapturer.kt a tu proyecto. En los próximos pasos nos centraremos en los aspectos clave de la captura de vídeo personalizada en este tutorial, así que no te preocupes si no entiendes todo el capturador de inmediato.

  1. Cómo expone la capturadora sus ajustes

El SDK necesita saber qué tipo de flujo de vídeo va a proporcionar tu capturadora. Esto se hace a través de getCaptureSettings() en el capturador personalizado:

    @Synchronized
    override fun getCaptureSettings(): CaptureSettings {
        val settings = CaptureSettings()
        settings.fps = desiredFps
        settings.width = cameraFrame?.width ?: -1
        settings.height = cameraFrame?.height ?: -1
        settings.format = NV21
        settings.expectedDelay = 0
        settings.mirrorInLocalRender = frameMirrorX

        return settings
    }

Los ajustes que aparecen aquí configuran la captura de la siguiente manera:

fps: cuántos fotogramas por segundo ofrecerá. anchura y altura: la resolución de los fotogramas (puede derivarse de la salida real de la cámara o del tamaño de captura configurado). formatoel formato de píxel que va a proporcionar al SDK (por ejemplo, NV21). retraso previsto: una estimación (en ms) del tiempo que transcurre entre la captura y la entrega de un fotograma.

Estos ajustes se transmiten al SDK de Vonage a través de MirrorVideoCapturer. Una vez configurados, el SDK sabe: cómo asignar los búferes, cómo codificar los fotogramas, y cómo adaptar el comportamiento de la red y la codificación a tu perfil de captura.