Javascript无延迟播放无限循环音频文件

Posted

技术标签:

【中文标题】Javascript无延迟播放无限循环音频文件【英文标题】:Javascript playing an endless loop audio file without delay 【发布时间】:2021-09-13 09:57:03 【问题描述】:

标题几乎是不言自明的。

我想用 javascript 创建一个无限循环,但在读取(再次)相同的文件之间不停止。

这是我的代码:

function playMySong(url)

    var audio=document.createElement('audio');
    audio.style.display="none";
    audio.src=url;
    audio.autoplay=true;
    audio.onended=function()
    
        playMySong('whiteNoise.wav');
    ;
    document.body.appendChild(audio);


playMySong('whiteNoise.wav');

我的代码(几乎)完美运行,但我想了解声音结束到同一个文件开始之间的微小延迟。

不是:

[whiteNoise.wav][0.2ms delay][whiteNoise.wav]

我想要:

[whiteNoise.wav][whiteNoise.wav]

:)

【问题讨论】:

使用loop 属性怎么样? 【参考方案1】:

当音频文件到达末尾时,您会一次又一次地加载它。显然,加载资源需要时间。

为什么不对audio 元素使用简单的loop 属性?它将循环播放音频剪辑本身,而不会一次又一次地加载资源。

function playMySong(url)

    var audio=document.createElement('audio');
    audio.style.display="none";
    audio.src=url;
    audio.autoplay=true;
    audio.loop = true;
    document.body.appendChild(audio);


playMySong('whiteNoise.wav');

【讨论】:

以上是关于Javascript无延迟播放无限循环音频文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在播放/暂停控制功能中停止无限循环

JavaScript setTimeout 无递归无限循环

除了播放按钮外,重复(循环)UIButton

Web:如何无延迟地一个接一个地播放音频文件?

如何在没有任何延迟的情况下在android中循环播放音频文件?

无限循环 - 延迟 - 单独的线程