It should be noted that you can read the currentTime property of a video much more often. If time is really critical, and you can live with a little bit of uncertainty, you can try this instead.
It is, however, a lot less elegant than using the tag's own timeupdate
event.
setInterval(function () {
console.log(audio.currentTime); // will get you a lot more updates.
}, 30);
In this case, you'll have to manage the interval yourself, make sure that you clear it before null
ing the audio element. But it is a possibility.
I'm using this approach on a video element, but it should apply here, too.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…