当我在 html5 音频元素上使用“loop”属性时,歌曲重播时似乎有间断。有没有一种简单的方法可以消除这种差距?
代码:
<audio controls loop preload>
<source src="http://www.phatdrumloops.com/audio/wav/ifineededs.wav" type="audio/wav">
Your browser does not support the audio element.
</audio>
工作 fiddle 示例:
https://jsfiddle.net/rmwumaz7/
这实际上是音频标签的问题。但是,您可以尝试通过执行以下操作来尽量减少影响:
var audio = new Audio('http://www.phatdrumloops.com/audio/wav/ifineededs.wav')
audio.addEventListener('timeupdate', function(){
var buffer = .1
if(this.currentTime > this.duration - buffer){
this.currentTime = 0
this.play()
}}, false);
audio.play()
编辑:根据您的评论,我进行了更深入的挖掘。这是我发现的:
https://github.com/Hivenfour/SeamlessLoop
这里的问题是,您需要以毫秒为单位提供正确的轨道长度(您要循环的轨道)
请看这里的 fiddle 。
https://jsbin.com/simuvoduhi/edit?html,js,output