Kotlin

Creación del renderizador de vídeo invertido

InvertedColorsVideoRenderer es tu principal renderizador personalizado. Esta clase se conecta directamente a Vonage Video SDK. NO renderiza video por sí misma, delega toda la renderización a MyRenderer.

Responsabilidades clave:

  • Crear y configurar un GLSurfaceView
  • Recibir fotogramas de vídeo de Vonage Video SDK (onFrame)
  • Páselos al OpenGL renderizador
  • Escalado de vídeo ("fit", "fill")`.
  • Pause/resume renderización
  1. Crear un archivo kotlin separado con el InvertedColorsVideoRenderer

En InvertedColorsVideoRenderer() establece una propiedad de renderizador en GLSurfaceView objeto. La aplicación utiliza este objeto para mostrar el vídeo utilizando OpenGL ES 2.0. El renderizador para este GLSurfaceView se establece en MyRenderer objeto. MyRenderer es una clase personalizada que crearemos extiende GLSurfaceView.Renderery se utiliza para renderizar el vídeo en el GLSurfaceView objeto

  1. Explora el código creado y lo que hace.
  • Vonage Video SDK llama a onFrame() para cada trama entrante
  • Entregamos el marco al OpenGL renderizador renderer.displayFrame()
  • Preguntamos GLSurfaceView desenfundar inmediatamente requestRender()
  • Esto establece una separación clara entre Vonage Video SDK lógica y OpenGL lógica.
  1. Echemos un vistazo más de cerca al onFrame() del renderizador de vídeo

Se hereda del BaseVideoRenderer clase. En BaseVideoRenderer.onFrame() es llamado cuando el editor (o suscriptor) renderiza un fotograma de vídeo al renderizador de vídeo. La dirección InvertedColorsVideoRenderer de este método, toma el búfer de imagen del fotograma (representación YUV del fotograma), lo pasa a la función displayFrame método del MyRenderer y llama al objeto requestRender() método del GLSurfaceView objeto: