audio preloader

by Ercan Cicek

JavaScript

// --- resources needed
// --- lodash & jQuery recommended
function preloadAudioFiles() {
    var maxAudioFiles = 26,
        audio = [],
        loadedCount = 0;

    _.times(maxAudioFiles, function (index) {
      audio.push(["sfile_" + (index + 1) + ".mp3", (index + 1)]);
      index++;
    });

    _.forEach(audio, function (a) {
      $("body").append("<audio id='prlf_" + a[1] + "' preload='true'><source src='" + a[0] + "' type='audio/mpeg'></audio>");
      document.getElementById("prlf_" + a[1]).oncanplaythrough = function () {
        loadedCount++;
        if (loadedCount === audio.length) { /* finish */ };
      };
    });
}