Vídeo (`VideoSprite`)
Cómo mostrar, añadir, controlar y gestionar recursos de vídeo en el canvas usando el componente `VideoSprite` (`play`, `pause`, `loop`, `restart` y los helpers de ciclo de vida `showVideo` / `addVideo`).
El componente VideoSprite extiende el componente ImageSprite, por lo que puede usar todos los métodos y propiedades de ImageSprite. Se utiliza para mostrar un único vídeo en el canvas.
import { canvas, VideoSprite } from "@drincs/pixi-vn";
let video = new VideoSprite(
{
anchor: { x: 0.5, y: 0.5 },
x: 100,
y: 100,
},
"film",
);
await video.load();
canvas.add("my_video", video);En comparación con el componente ImageSprite, VideoSprite añade las siguientes funcionalidades:
loop: Indica si el vídeo debe repetirse al terminar.paused: Indica si el vídeo está en pausa.pause: Método para pausar el vídeo.play: Método para reproducir el vídeo.currentTime: La posición de reproducción actual del vídeo.restart: Método para reiniciar el vídeo desde el principio.
Mostrar
La forma más sencilla de mostrar un vídeo en el canvas es usar la función showVideo. Esta función combina load y canvas.add.
import { newLabel, showVideo } from "@drincs/pixi-vn";
export const startLabel = newLabel("start", [
async () => {
// Show the videos on the canvas
let video1 = await showVideo("video");
// Show the video with a different alias and position
let video2 = await showVideo("video2", "video", {
xAlign: 0.5,
});
},
]);Agregar
Para añadir un vídeo al canvas, use la función addVideo. Esta función solo añade el componente al lienzo; no lo muestra ni carga su textura. Utiliza canvas.add para agregar el componente al lienzo.
import { addVideo, canvas, VideoSprite, newLabel } from "@drincs/pixi-vn";
export const startLabel = newLabel("start", [
() => {
// Add the videos to the canvas
let video1 = addVideo("video");
// Add the video with a different alias and position
let video2 = addVideo("video2", "video", {
xAlign: 0.5,
});
},
async () => {
let video1 = canvas.find<VideoSprite>("video");
let video2 = canvas.find<VideoSprite>("video2");
// Load the textures
video1 && (await video1.load());
video2 && (await video2.load());
},
]);Eliminar
Al igual que con otros componentes del lienzo, puedes eliminar este componente usando la función canvas.remove.
Reproducir y pausar
Use los métodos play y pause, o establezca la propiedad paused.
import {
canvas,
narration,
newLabel,
showVideo,
VideoSprite,
} from "@drincs/pixi-vn";
export const startLabel = newLabel("start", [
async () => {
narration.dialogue = "add video";
await showVideo("video");
},
async () => {
narration.dialogue = "pause video";
let video = canvas.find<VideoSprite>("video");
if (video) {
video.pause();
// or: video.paused = true
}
},
async () => {
narration.dialogue = "resume video";
let video = canvas.find<VideoSprite>("video");
if (video) {
video.play();
// or: video.paused = false
}
},
]);Bucle
Establezca la propiedad loop para que el vídeo se repita.
import { newLabel, showVideo } from "@drincs/pixi-vn";
export const startLabel = newLabel("start", [
async () => {
let video = await showVideo("video");
video.loop = true;
},
]);Reiniciar
Use el método restart para reiniciar la reproducción desde el principio.
import {
canvas,
narration,
newLabel,
showVideo,
VideoSprite,
} from "@drincs/pixi-vn";
export const startLabel = newLabel("start", [
async () => {
narration.dialogue = "add video";
await showVideo("video");
},
async () => {
narration.dialogue = "restart video";
let video = canvas.find<VideoSprite>("video");
if (video) {
video.restart();
}
},
]);