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

Javascript playing an endless loop audio file without delay

标题几乎不言自明。

我想用 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]

:)

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

为什么不对 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');