Я бы обработал событие воспроизведения, а затем использовал бы трек вызова setTimeout, когда они закончили. Примерно так (псевдокод):
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!");
});
Как всегда, это может быть намного сложнее в зависимости от ваших потребностей. Вы также можете просто использовать событие ontimeupdate, чтобы отследить, где сейчас находится точка воспроизведения. Справочную информацию о звуковых событиях html5 можно найти на этой странице:
https://developer.mozilla.org/en/DOM/Media_events
Удачи!