有几点需要注意...你的脚本需要放在音频标签后面。
此外,由于使用JavaScript处理,因此您不需要在音频标签上使用oncanplaythrough
属性。
另外,oncanplaythrough
是一个事件,而不是一个方法。让我们为其添加一个监听器,它将改用canplaythrough
。请参考以下代码:
<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 bug,设置
currentTime
时应该触发
canplay
和
canplaythrough
事件。这意味着在我们的示例中,Firefox将无限期地播放音频轨道的前一秒左右,永远不会继续播放。我想出了这个快速解决方法,让我们改变一下。
this.currentTime = 12
为了测试是否已经设置,从而防止canplaythrough
被反复调用:
if(this.currentTime < 12){this.currentTime = 12
这种对规范的解释目前仍存在争议,但现在这个实现应该可以在支持HTML5音频的大多数现代浏览器上工作。
更新后的jsFiddle链接:http://jsfiddle.net/mNPCP/5/