@engel lex Audio y Video tienen una propiedad llamada currentTime que te devuelve el tiempo actual de reproducción y si le asignas un valor (en segundos) salta a dicho tiempo.
En mi reproductor lo hice así:
En mi reproductor lo hice así:
- Obtienes el offsetWidth del playhead (la barra de progreso).
- Obtienes la coordenada X del click en el playhead y le restas el offsetLeft del playhead.
- Devuelves la division del resultado anterior y el offsetWidth del playhead. Esto devuelve el % del playhead donde se ha clickeado en rango 0 a 1, donde 1 es 100%.
- Le asignas a la propiedad currentTime del objeto Video el resultado de la duracion del vídeo * el resultado anterior.
Por ejemplo, se ha ckickeado en el 40% del playhead lo que retorna 0.4. La duración del vídeo es de 600 segundos. 600 * 0.4 = 240. Por lo que salta al segundo 240.
Ejemplo:
Función getPlayheadClickPercent():Código (javascript) [Seleccionar]
var playhead = document.querySelector(".playhead");
var playheadWidth = playhead.offsetWidth;
var clickOffsetLeft = e.pageX - playhead.offsetLeft;
return clickOffsetLeft / playheadWidth;
Luego actualizamos el transcurso actual del vídeo:Código (javascript) [Seleccionar]
var video = videosList[currentVideo];
var duration = video.duration;
var playheadClickPercent = getPlayheadClickPercent();
video.currentTime = duration * playheadClickPercent;
Pueden ver la documentación de Video aquí.
Sencillo como puedes ver. Cualquier error ortográfico me disculpan, estoy escribiendo desde móvil con Opera mini
Saludos.