一些事情......你的脚本首先需要在音频标签之后。
此外,您不需要oncanplaythough
音频标签上的属性,因为您使用 JavaScript 来处理此问题。
而且,oncanplaythrough
是一个事件,而不是一个方法。让我们为它添加一个监听器,它将使用canplaythough
. 看看这个:
<audio id="audio2"
preload="auto"
src="http://upload.wikimedia.org/wikipedia/commons/a/a9/Tromboon-sample.ogg" >
<p>Your browser does not support the audio element</p>
</audio>
<script>
myAudio=document.getElementById('audio2');
myAudio.addEventListener('canplaythrough', function() {
this.currentTime = 12;
this.play();
});
</script>
最后,要在特定点开始播放歌曲,只需currentTime
在实际播放文件之前进行设置。在这里,我将其设置为 12 秒,因此在此示例中可以听到,对于 3:26,您将使用 206(秒)。
查看现场演示:http: //jsfiddle.net/mNPCP/4/
编辑:似乎在Firefox 以外的currentTime
浏览器中实施不当。根据这个提交的 W3C 错误的解决方案,当设置它应该触发和事件。这意味着在我们的示例中,Firefox 将无限期地播放音轨的第一秒左右,从不继续播放。我想出了这个快速的解决方法,让我们改变currentTime
canplay
canplaythrough
this.currentTime = 12;
测试它是否已经被设置,从而防止canplaythrough
被重复调用:
if(this.currentTime < 12){this.currentTime = 12;}
这种对规范的解释目前仍然存在争议,但目前这种实现应该适用于大多数支持 HTML5 音频的现代浏览器。
更新的 jsFiddle:http: //jsfiddle.net/mNPCP/5/