2012-03-13 8 views
11

Aprendiendo cosas html5. ¡Es asombroso! Se pregunta con qué frecuencia se dispara el evento timeupdate.Con qué frecuencia se dispara el evento timeupdate para un video html5

LADO NOTA: Hay muchas posibilidades interesantes con la api de video js. Por ejemplo, podría ser posible usar ctrl + F para buscar a través del video. Ejecute un reconocimiento de voz como parte del procesamiento de video, luego cree un almacén de valores clave largos con marcas de tiempo como claves y palabras como valores, y escriba una función que busque instancias de esas palabras, pero regrese las marcas de tiempo y busque su video. De todos modos, esa es solo una loca idea en la que youtube debe saltar.

¡Cualquier ayuda con timeupdate sería increíble!

+0

Hey, esta palabra de búsqueda es una idea muy bien! – SexyBeast

+0

¿Conoce a alguien que trabaje en Vimeo o YouTube y que podría implementarlo? – Costa

+0

No. Tendrá sus propios desafíos. Es trivial indexar el video si tiene subtítulos, pero si no lo tiene, entonces el servidor debe automatizar la voz al texto. Ya que no siempre es un video de 5-10 segundos, puede durar alrededor de 10 minutos, el proceso tiene que convertir un audio sustancialmente largo en texto, que a su vez es difícil, dejando de lado la precisión. – SexyBeast

Respuesta

22

Según this Bugzilla page:

Firefox fires the timeupdate event once per frame. Safari 5 and Chrome 6 fire every 250ms. Opera 10.50 fires every 200ms.

+0

Mmm .... caprichos del navegador. ¡Gracias! – Costa

+5

Vaya Firefox por cierto, tiene mucho sentido hacerlo una vez por cuadro. – Costa

+1

A menos que su enlace algún tipo de devolución de llamada; disparar una devolución de llamada 25 veces por segundo puede ser bastante intenso ... sobre todo cuando no puede estrangularlo. –

2

que utiliza una función genérica del acelerador

_self.throttle = function (fn, threshhold, scope) { 
    threshhold || (threshhold = 250); 
    var last, 
     deferTimer; 
    return function() { 
     var context = scope || this; 

     var now = +new Date, 
      args = arguments; 
     if (last && now < last + threshhold) { 
      // hold on to it 
      clearTimeout(deferTimer); 
      deferTimer = setTimeout(function() { 
       last = now; 
       fn.apply(context, args); 
      }, threshhold); 
     } else { 
      last = now; 
      fn.apply(context, args); 
     } 
    }; 
}; 

y por cable de seguridad con

myPlayer.on('timeupdate', window.vm.throttle(function() { 
     window.vm.setWatched(myPlayer.currentTime()); 
    }, 3000)); 

esperanza esto ayuda a alguien.

código cribbed de http://remysharp.com/2010/07/21/throttling-function-calls/

+0

¿MyPlayer = document.querySelector ('audio')? Dado que TypeError no detectado: Object # no tiene el método 'on' activado – loretoparisi

Cuestiones relacionadas