在当前歌曲结束前一点预加载播放列表中的下一首歌曲

preloading the next song in a playlist a bit before the current one ends

我制作了一个运行良好的小型媒体播放器,但我想制作它以便在每首歌曲之间不再加载

我知道预加载 属性 但它只在页面第一次加载时预加载音乐,所以我觉得这行不通

有没有办法做到这一点?也许使用网络音频 API?

当您开始播放歌曲时,您可以观看音频的 play 事件并且已经开始预加载队列中的下一首歌曲。

这是我用来预加载音频的功能,你可以随时使用它,不仅是在第一次加载页面时:

function preloadAudio (filename) {

    var sound = new Audio();
    sound.preload = 'auto';

    sound.addEventListener('canplaythrough', function () {
        // now the audio is ready to play through
    });

    document.body.appendChild(sound);

    sound.src = filename;
    sound.load();

}