una tamaño redimensionar puedo pegar modificar lienzo las imagen hoja fotos dimensiones cs6 como cambiar ajustar achicar html5 canvas html5-canvas html5-video

html5 - tamaño - Reproduzca video en lienzo y conserve el último cuadro/imagen en el lienzo



photoshop pegar imagen cambiar tamaño (1)

Estoy usando el siguiente código de script para dibujar un video en el lienzo:

$("#vPlayer").on(''play'', function (e) { var canvas = $(''canvas'')[0]; var ctx = canvas.getContext(''2d''); var $this = this; canvas.width = 640; canvas.height = 480; (function loop() { if (!$this.paused && !$this.ended) { ctx.drawImage($this, 0, 0, 640, 480); setTimeout(loop, 1000 / 30); // drawing at 30fps } })(); });

El código funciona bien, pero en mi caso, quiero cambiar la fuente de video (atributo src) de la etiqueta de video cada 2 minutos. Cuando configuro src attr para el video y durante el tiempo de carga del video, el lienzo muestra una pantalla en blanco. ¿Cómo puedo conservar la última imagen del video y no borrar el lienzo?

Es un poco extraño, porque cuando no configuro el ancho y alto para el lienzo, el último cuadro se conserva, pero necesito establecer el tamaño.

Gracias de antemano.


Cada vez que configure el tamaño del lienzo, se borrará.

Para evitar esto, debe establecer el tamaño al principio, antes de comenzar a dibujarlo. En este caso, le recomendaría que lo configure fuera del controlador de eventos, así como la inicialización del lienzo y la variable de contexto:

var canvas = $(''canvas'')[0]; var ctx = canvas.getContext(''2d''); canvas.width = 640; canvas.height = 480; $("#vPlayer").on(''play'', function (e) { var $this = this; (function loop() { if (!$this.paused && !$this.ended) { ctx.drawImage($this, 0, 0, 640, 480); setTimeout(loop, 1000 / 30); // drawing at 30fps } })(); });