Saltar a contenido

VideoRenderer

VideoRenderer

El componente VideoRenderer permite renderizar contenido de video en pantalla.
Admite características como control de reproducción, escalado, rotación, volteo, opacidad, máscara de color y tintado.
Los videos pueden mostrarse con dimensiones personalizadas, posicionarse mediante desplazamientos y recortarse para mostrar regiones específicas (slice).
Además, es posible controlar si el video se repite en bucle, ajustar el volumen y sincronizar la velocidad de reproducción con la escala de tiempo del motor.

Propiedades

Propiedad Tipo Descripción
action "play" \| "pause" \| "stop" Acción actual para el video.
fixedToTimeScale boolean Si es true, la velocidad de reproducción sigue la escala de tiempo del motor.
flipHorizontally boolean Si es true, voltea el video horizontalmente.
flipVertically boolean Si es true, voltea el video verticalmente.
height number Altura personalizada del video.
layer string Capa de renderizado.
loop boolean Si es true, reproduce el video en bucle.
maskColor string Color de máscara aplicado al video.
maskColorMix number Intensidad de la mezcla de la máscara (entre 0 y 1).
offset Vector2 Desplazamiento en los ejes X e Y.
opacity number Opacidad del video (entre 0 y 1).
rotation number Rotación del video en radianes.
slice Slice Coordenadas para recortar una región específica del video.
tintColor string Color de tintado aplicado al video.
video HTMLVideoElement | string Video a renderizar. Puede ser un elemento HTML o un nombre de asset.
volume number Volumen del video (entre 0 y 1).
width number Ancho personalizado del video.
playing boolean (solo lectura) true si el video se está reproduciendo.

Ejemplo básico

const videoRenderer = new VideoRenderer({
    video: this.assetManager.getVideo("video.mp4"),
    width: 1920,
    height: 1080,
});

Ejemplo completo

const videoRenderer = new VideoRenderer({
    video: this.assetManager.getVideo("video.mp4"),
    width: 1920,
    height: 1080,
    offset: new Vector2(0, 0),
    flipHorizontally: false,
    flipVertically: false,
    rotation: 0,
    opacity: 1,
    maskColor: "#FF0000",
    maskColorMix: 0,
    tintColor: "#00FF00",
    layer: "Default",
    slice: { x: 0, y: 0, width: 1920, height: 1080 },
    volume: 1,
    loop: false,
    fixedToTimeScale: false,
});

Control de reproducción

El componente ofrece tres métodos públicos para controlar la reproducción del video:

  • play(videoSource?: HTMLVideoElement): Cambia el estado a reproducción. Opcionalmente, puede asignar una nueva fuente de video.
  • pause(): Cambia el estado a pausa.
  • stop(): Cambia el estado a detenido.

Importante:
Estas funciones no ejecutan ninguna lógica directamente. Solo modifican el estado del atributo action.
La lógica de reproducción real se ejecuta dentro del sistema encargado de procesar el componente.

videoRenderer.play();
videoRenderer.pause();
videoRenderer.stop();

Notas

  • Para mostrar el video en pantalla, la entidad debe incluir un componente VideoRenderer y estar dentro de una escena activa.
  • El atributo fixedToTimeScale permite sincronizar la velocidad de reproducción con la escala de tiempo configurada en el motor.
  • La política de reproducción automática de los navegadores requiere que haya al menos una interacción humana antes de poder iniciar la reproducción de video.