Mira este código
Intenté reproducir el video de un momento específico a otro momento específico.
<html> <head> <script> function playVideo(str) { var video = document.getElementById("myVideo"); video.src = str; video.currentTime=16; video.play(); var maxTime = 20; video.addEventListener("progress", function(){ if(video.currentTime >= maxTime){ video.pause(); } }, false); } </script> </head> <body> <video id="myVideo" width="1000" height="800" controls autoplay loop> Your browser does not support the video tag. </video> <a onclick="playVideo('video/journey27.mp4')" > Play2 </a> </body> </html> ¿Por qué el video no se detiene cuando currentTime>=maxTime ?
Creo que hay algo mal con eventListener.
Debe usar el detector de eventos "timeupdate" que se ejecuta cada vez que cambia la hora y no el progreso que se ejecuta en diferentes situaciones.
Su función de reproducción de video debería verse así:
function playVideo(str) { var video = document.getElementById("myVideo"); video.src = str; video.currentTime = 16; video.play(); var maxTime = 20; video.addEventListener( "timeupdate", // changed the event listener function (event) { if (this.currentTime >= maxTime) { video.pause(); } }, false ); } Vale la pena mencionar que usar una instancia del objeto que está creando como detector de eventos para él no siempre es una buena práctica y es mejor usar this palabra clave.