有几件事情...你的脚本将首先需要后的音频标签。
此外,您不需要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/
编辑:看来,currentTime
可能无法正常在浏览器中实现其他比Firefox。根据这个提交的 W3C 错误的解决方案,当currentTime
设置它时,它应该触发canplay
和canplaythrough
事件。这意味着在我们的示例中,Firefox 将无限期地播放音轨的第一秒左右,从不继续播放。我想出了这个快速的解决方法,让我们改变一下
this.currentTime = 12;
测试它是否已经被设置,从而防止canplaythrough
被重复调用:
if(this.currentTime < 12){this.currentTime = 12;}
这种对规范的解释目前仍有争议,但目前这种实现应该适用于大多数支持 HTML5 音频的现代浏览器。
更新后的 jsFiddle:http : //jsfiddle.net/mNPCP/5/