Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

107
Visualizações
Ajustar transmisión de video en lienzo posicionado

En una aplicación web en el móvil, muestro una transmisión de video en pantalla completa (es decir, 360 x 520) usando .getUserMedia . Según los valores pasados en la URL (es decir, 260 x 220), creo un lienzo en el medio de la pantalla:

 let largview = iw-40; // canvas width with left 20px (iw=screen width) let heightview = Math.round((largview)/w)*h; // URL values let topview = Math.round((ih-heightview)/2); // (ih=screen height) video.style.width = iw+'px'; video.style.height = ih+'px'; canvas.width = largview; canvas.height = heightview; canvas.style.marginLeft = 20+'px'; canvas.style.marginTop = topview+'px';

Una vez hecho esto, duplico la transmisión de video en este lienzo:

 setInterval(function(){ context.drawImage(cameraVideo, 20,topview, largview,heightview, 0,0, largview,heightview); },1);

Mi problema es que no puedo mostrar el video en el lienzo, ya que este era "transparente": sin su border:1px solid red , no podría verlo, la transmisión de video y la transmisión de lienzo encajarán perfectamente. Probé muchos valores diferentes en drawImage pero a veces el flujo de lienzo es más grande que el flujo de video, a veces no está en el lugar correcto, a veces funciona bien (arriba/izquierda están bien) pero el lienzo no está completamente lleno: faltan 20px en el lado correcto...

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Encontré una solución [¿extraña?] con 2 etiquetas <canvas>:

El primer lienzo se establece en ancho y alto = 100% (contiene la transmisión de video completa).

El segundo tiene un tamaño de vista grande * vista de altura, con posición = 20 px a la izquierda y px de vista superior de la parte superior.

 setInterval(function(){ cameraContext.drawImage(cameraVideo, 0,0, iw,ih); // full video let imageData = cameraContext.getImageData( 20, topview, cameraCanvas.width, cameraCanvas.height); cameraContext2.putImageData(imageData, 0, 0); },1);

Funciona bien.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda