2011-08-08 8 views

Odpowiedz

3

Zajmę się zdarzeniem odtwarzania, a następnie użyj ścieżki wywołania setTimeout po zakończeniu. Coś w tym stylu (pseudo kod):

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!"); 
     }); 

Jak zwykle, może to być znacznie bardziej skomplikowane w zależności od potrzeb. Możesz także po prostu użyć zdarzenia ontimeupdate, aby śledzić, gdzie obecnie znajduje się głowica odtwarzania. Przez odniesienie zdarzeń HTML5 audio sprawdzić tę stronę:

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

powodzenia!

+0

Może wystąpić opóźnienie po zdarzeniu '' play'' i kiedy dźwięk faktycznie zaczyna się odtwarzać. Bezpieczniej jest ustawić detektor zdarzeń na '' timeupdate''. – mzedeler

Powiązane problemy