Detectar em Javascript quando o loop <video> do HTML5 for reiniciado?
Eu tenho um vídeo em HTML5 em loop usando<video loop="true">
, e quero saber quando o vídeo é repetido. O ouvinte de eventoplay
só é acionado quando o vídeo é iniciado inicialmente eended
nunca dispara.
A natureza imprecisa datimeupdate
me deixa nervoso usandoif ( v.currentTime <= 0 )
, mas parece funcionar. Existe uma maneira melhor de detectar quando o vídeo é reiniciado?
Aqui está minha configuração básica:
<video autoplay="true" loop="true" muted="true">
<source src="vidoe.mp4" type="video/mp4">
<source src="video.webm" type="video/webm">
<source src="video.ogv" type="video/ogg">
</video>
<div id="Video-Time"></div>
<script>
var v = document.getElementsByTagName('video')[0]
var t = document.getElementById('Video-Time');
v.addEventListener('timeupdate',function(event){
t.innerHTML = v.currentTime;
if ( v.currentTime <= 0 ) { console.log("Beginning!"); } // It does trigger when looping, surprisingly
},false);
v.addEventListener('play', function () {
console.log("play!"); // Only triggered when the video initially starts playing, not when the loop restarts
},false);
v.addEventListener('ended', function () {
console.log("ended!"); // Never triggered
},false);
</script>