我目前正在做一些有趣的网站,它需要音频线索(我认为这是个名字?)。当歌曲播放X时间时,我希望网站做些什么。<audio>在特定时间的呼叫功能
我可以很容易地使用element.currentTime
当前的时间,但我不知道怎么说:当element.currentTime == 5.2,runFunction() - 如果你知道我的意思。有没有什么方法可以做到这一点?我目前的测试代码:
< ---- AUDIO开始播放---->
http://jsfiddle.net/jfL4mcnh/
$("<audio id='audioElement'>").appendTo("body");
$("#audioElement").attr("src", "http://mp3ornot.com/songs/1B.mp3").attr("autoplay", "autoplay");
setInterval(function() {
//for some reason, $("#audioElement").currentTime won't work, so we're going old fashion
time = document.getElementById("audioElement").currentTime;
console.log(time);
}, 1000);
而且,我忘了说这个,我不能做一个setTimeout()
,并在打准确的时刻,我想以毫秒为单位,因为音频可能需要一些额外的时间来加载,而实际的代码恰好在“看到”时运行,如果你知道我的意思。所以没有倒计时。我需要在这里确切。
这是行不通的。阅读我刚刚添加的问题的最后部分,因为我忘了说这个。音频文件可能需要额外的时间才能加载 – MortenMoulder
这不是倒数计时,它会周期性轮询,然后在音频播放达到设定的时间长度后进行响应,如果音频需要一段时间才能加载,则相应地会在当前时间较长时间报告为5.2秒 - 我在这里模拟了这个:http://jsfiddle.net/jfL4mcnh/12/ –
是的,但是如果音频文件迟了3秒,会发生什么情况,因为请求滞后?然后Javascript将会出错:) – MortenMoulder