Mi objetivo es activar un evento una vez cada vez que el usuario supera una marca de intervalo de 10 segundos dentro de su video, por ejemplo, 10, 20, 30, 40 segundos...
¿Cómo puedo lograr esto con el evento de timeupdate de tiempo? Siento que estoy cerca, pero parece que no puedo obtener la respuesta correcta. Lo que tengo hasta ahora es disparar varias veces a ~10.250, ~10.5 y ~10.75 hora actual. Necesito que solo dispare una vez por intervalo de 10 segundos.
videoPlayer.on('timeupdate', (e) => { // Only invoke the function after the 10 second mark if (videoPlayer.currentTime() > 10 && videoPlayer.currentTime() % 10 < 1) { myFunc(); } });¡Agradezco cualquier ayuda que pueda obtener! ¡Gracias!
Intente realizar un seguimiento de la hora actual en segundos y actualice solo cuando cambie. Por ejemplo:
// keep track of time in seconds let time = 0; videoPlayer.addEventListener('timeupdate', (e) => { const exactTime = videoPlayer.currentTime; const current = Math.floor(exactTime); // still in the same second! do nothing if (current === time) return; time = current; // if it is a new ten second interval if (time % 10 === 0) { // console.log(exactTime); myFunc(); } });