tengo un elemento <video>
en mi página:HTML5 caso timeupdate vídeo no disparar
<video id="myVideo">
<source src="vid.mp4" type="video/mp4" />
<source src="vid.ogg" type="video/ogg" />
</video>
En mis JS se lee:
var v = $('#myVideo')[0];
v.addEventListener('timeupdate',function(){
alert('I changed');
},false);
Ahora voy a encender mi consola y escriba:
$('#myVideo')[0].currentTime = 2;
El marco mostrado cambiará, pero el evento no se disparará. De acuerdo con las especificaciones timeupdate
debe disparar cuando currentTime was changed
, por lo que no creo que estoy utilizando el evento equivocado? Todos los demás eventos que estoy usando (es decir, play
& ended
) funcionan perfectamente.
Hay muchas preguntas similares por ahí, ¿pero todas parecen ser errores obsoletos? ¿Es este otro error más (lo probé en Chrome 17 y FF10) o cambió algo en la estructura del evento? ¿O me estoy perdiendo algo completamente diferente?
EDIT: Me acabo de dar cuenta de que este problema solo ocurrirá cuando el video aún no se haya reproducido. Entonces cuando lo haga:
$('#myVideo')[0].play();
$('#myVideo')[0].pause();
$('#myVideo')[0].currentTime = 2;
El evento se disparará justo como debería.
¿No hay manera de detectar si la cabeza lectora de un video se ha movido antes de que el video se haya iniciado por primera vez? – m90
tal vez estamos hablando de propósitos cruzados, pero ¿cómo podemos buscar un video que ya no se haya cargado (o esté cargando)? ¿Se muestran tus controles todo el tiempo? ¿Tienes un pequeño ejemplo para ese caso? ..puede que este sitio ayude también: http: //www.w3.org/2010/05/video/mediaevents.html lista de todos los eventos en un ejemplo en vivo.buscado podría ser tu atributo ?! – longilong
Esto puede ser un poco complicado, sin embargo, consulte: http://goo.gl/uJyod. Puede que quiera mostrar el elemento '