Inicio de la captura
startCapture() es el siguiente método que debemos implementar. Es llamado por el SDK cuando el editor comienza a capturar (por ejemplo, después de que Session.publish(publisher)). Debería iniciar su bucle de captura o escucha. Como verás los frames aquí, son entregados por ImageReader.setOnImageAvailableListenerAsí que startCapture() señalará principalmente que la captura está activa.
Ciclo de vida:
init()- CrearImageReadere iniciar un hilo de fondo. EnImageReaderproporciona unaSurfacequeVirtualDisplayse convierte en.createVirtualDisplay()- Crear unVirtualDisplayrespaldado por elImageReader. El contenido de la pantalla se renderiza en esta pantalla.startCapture()- Se ejecuta cuando se inicia el editor. Marca la captura como activa.stopCapture()- Libere la pantalla virtual, detenga la proyección multimedia y limpie.
Alimentación de fotogramas al SDK
Cuando el sistema renderiza un nuevo fotograma en el VirtualDisplay, ImageReader lo entrega a través de onImageAvailable:
En provideIntArrayFrame definido por el método BaseVideoCapturer envía una matriz entera de datos al editor, que se utilizará para el siguiente fotograma de vídeo publicado.
Si el editor sigue capturando vídeo, el hilo vuelve a empezar tras otro 1/15 de segundo, de modo que la capturadora sigue suministrando al editor nuevos fotogramas de vídeo para publicar.
Compartir pantalla
Aprende a implementar la capacidad de compartir pantallas usando la plataforma de Video API de Vonage.