Problema de reprodução automática do player de vídeo, captura de tela do vídeo

Recentemente, eu estava escrevendo uma função de reprodução de vídeo em grade de 9 quadrados que precisa ser reproduzida automaticamente, mas encontrei um problema. Alguns navegadores proíbem a reprodução automática de vídeos com áudio. Mesmo que alguns possam ser reproduzidos automaticamente, o vídeo não será reproduzido automaticamente depois a página é atualizada. .

Procurei informações posteriormente e descobri que como a reprodução de vídeo com áudio é proibida, basta silenciar o vídeo.

O vídeo tem um atributo silenciado que indica se ele deve ser reproduzido silenciosamente. A configuração muted=muted o reproduzirá automaticamente. Ele será reproduzido automaticamente independentemente do navegador ou da atualização.

Outra forma é usar js para monitorar e executar o método play().

Se quiser que o som seja reproduzido, você pode primeiro silenciá-lo e depois definir o volume após 500

<video
      width="100%"
      height="100%"
      :src="video.videoUrl"
      :poster="video.liveVideoThumbnail"
      autoplay
      muted
      >

Renderizações anexadas

 Há também um problema de layout de estilo aqui. A tag de vídeo tem largura e altura que podem ser definidas. Geralmente, o vídeo é agrupado em um contêiner. Se o vídeo estiver definido para 100% de largura e altura, o vídeo exibirá automaticamente a imagem completa conteúdo de vídeo em uma proporção de 16:9.

O vídeo também tem um atributo, object-fit:contain. O padrão é contains, o que significa que o vídeo é adaptável no contêiner. Você também pode definir object-fit:cover. Se quiser que ele seja totalmente coberto, é object -ajuste:preencher. 

Você pode simplesmente definir a largura do vídeo e, em seguida, tornar a altura do vídeo adaptável

Função de captura de tela de vídeo

const myVideo=document.getElementById("video1");
  const canvas = document.getElementById('canvas')
  // can.width = myVideo.offsetWidth
  canvas.width = Math.ceil(myVideo.offsetHeight /9) * 16   // 获取视频画面的真实宽度
  canvas.height = myVideo.offsetHeight
  
  canvas.getContext('2d').drawImage(myVideo, 0, 0, can.width, can.height)
  let img = canvas.toDataURL('image/png', 1.0)
  document.getElementById("img").src = img

Acho que você gosta

Origin blog.csdn.net/ringlot/article/details/120747632
Recomendado
Clasificación