2011-08-08 14 views

Respuesta

3

Manejaría el evento de reproducción, y luego usaría una pista de llamada setTimeout cuando terminen. Algo como esto (pseudocódigo):

var timeHandler = null; 

// if they stop listening, don't give them the alert 
    myAudioElement.addEventListener('stop', function() { 
    if (timeHandler) clearTimeout(timeHandle); 
    }); 

// when they start to play, set an event to pop up 5 seconds later 
    myAudioElement.addEventListener('play', function() { 
     timeHandler = setTimeout(5000,function() { 
      // here I would make some kind of ajax call to log the event 
      alert("it's been 5 seconds!"); 
     }); 

Como siempre, esto podría ponerse mucho más complejo dependiendo de sus necesidades. También puede usar el evento ontimeupdate para rastrear dónde se encuentra sentado el cursor de reproducción. Para una referencia sobre los eventos de audio HTML5, echa un vistazo a esta página:

https://developer.mozilla.org/en/DOM/Media_events

Buena suerte!

+0

Puede haber un retraso después del evento' 'play'' y cuando el audio realmente comienza a reproducirse. Es más seguro configurar un escucha de eventos en '' timeupdate''. – mzedeler

Cuestiones relacionadas