TransWikia.com

Criar botao play/pause

Stack Overflow em Português Asked by Leonardo Costa on November 10, 2021

Eu gostaria de saber como eu posso criar um botão estilo o do youtube de play e pause encima do vídeo. Gostaria que quando não clicar nele ele fique parado com o play ai clica nele ele inicia o vídeo.

Código:

<video class="video" id="my-video" controls preload="auto" tabindex="0">

Eu já tenho a funcionalidade de quando clicar no video ele começar a carregar. Eu queria mesmo saber como colocar aquele icone do play estilo o do youtube.

2 Answers

Fiz deste jeito colocado dois botoes na primeira DIV, depois o video e com o JS eu fiz uma função passando como parametro para chamar a mesma o ID, dentro da função criei uma const video e coloquei o oncontextmenu para o usuario não poder baixar o video, dai só colocar o querySelector chamando o onclick com o atributo e ID, para desta forma pegar exatamente o que quero

<div>
    <button wm-play="meuVideo">Play</button>
    <button wm-pause="meuVideo">Pause</button>
</div>

<video id="meuVideo">
   <source src="http://ovideoquevocequer/video.mp4" type="video/mp4">
</video>

<script>
function configurarVideo(id){
    const video = document.getElementById(id)
    video.oncontextmenu = () => false

    document.querySelector(`[wm-play = ${id}]`).onclick = e => video.play()
    document.querySelector(`[wm-pause = ${id}]`).onclick = e => video.pause()
}
configurarVideo('meuVideo')
</script>

Answered by Flavio Werle on November 10, 2021

olha, você não precisa do jQuery para isto, a propria API do JavaScript lhe dá total controle sobre o Video.

var video = document.getElementById("video");
var play = document.getElementById("play");
var currentTime = document.getElementById("currentTime");
var duration = document.getElementById("duration");
var timezone = new Date().getTimezoneOffset() * 60 * 1000;

play.addEventListener("click", function () {
  if (video.ended) 
    video.currentTime = 0;
  video.play();
});

video.addEventListener('play', function () {
  play.style.display = "none";
});

video.addEventListener('pause', function () {
  play.style.display = "inline-block";
});

video.addEventListener('ended', function () {
  play.style.display = "inline-block";
});

video.addEventListener('timeupdate', function () {
  updateDuracao();
});

var timeToString = function (time) {
  var pad = "000";
  var tempo = new Date((time * 1000) + timezone);
  var millis = tempo.getMilliseconds().toString();
  tempo = tempo.toLocaleTimeString();
  millis = pad.substring(0, pad.length - millis.length) + millis;
  return tempo + "." + millis;
}

var updateDuracao = function () {
  currentTime.textContent = timeToString(video.currentTime);
  duration.textContent = timeToString(video.duration);
};

if (video.readyState > 0) {
  updateDuracao();
} else {
  video.addEventListener('loadedmetadata', updateDuracao);
}
<div>
  <input id="play" type="button" value="Play" />
  <span id="currentTime"></span>/<span id="duration"></span>
</div>
<div>
  <video id="video" controls preload="metadata">
    <source src="http://html5demos.com/assets/dizzy.mp4" type="video/mp4">
    <source src="http://html5demos.com/assets/dizzy.webm" type="video/webm">
    <source src="http://html5demos.com/assets/dizzy.ogv" type="video/ogg">
  </video>
</div>

Answered by Tobias Mesquita on November 10, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP