当歌曲在html音频标签中重放时如何消除间隙?

时间:2016-04-19 13:50:36

标签: javascript html5 html5-audio

当我在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>

工作小提琴示例:

https://jsfiddle.net/rmwumaz7/

1 个答案:

答案 0 :(得分:2)

这实际上是音频标签的问题。但是,您可以尝试通过执行以下操作来最小化效果:

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

问题在于,您需要以ms为单位提供正确的音轨长度(您要循环的音轨)

在这里看一个小提琴。 https://jsbin.com/simuvoduhi/edit?html,js,output