当歌曲在html音频标签中回放时,我如何删除间隙

How can I remove the gap when the song replays in the html audio tag?

本文关键字:何删除 间隙 删除 html 音频 回放 标签      更新时间:2023-09-26

当我使用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/

这实际上是音频标签的问题。然而,你可以通过这样做来尽量减少影响:

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

这里的问题是,你需要提供以毫秒为单位的正确轨道长度(你想循环的轨道)

看这里的小提琴。https://jsbin.com/simuvoduhi/edit?html,js,输出