Предварительная загрузка аудио файлов / событий?

Я предварительно загружаю все свои активы перед тем, как запустить приложение на основе JS, выполняя:

assets = [....]; // files
$.each(assets,function(){
    var r = /\.([^\.]+)$/;
    var ext = r.exec(this); //get file type
    if (ext[1] == 'png'){
        var tmp = new Image();
    } else if (ext[1] == 'mp3'){
        var tmp = new Audio();
    }

    tmp.src = this;
    tmp.onload = function(){
        var i = assets.indexOf(this);
        assets.splice(i,1);
        if (!assets.length){
            console.log('all loaded');
            app.build();
        }
    }
});

Это прекрасно работает, когда у меня есть толькоpngв моем массиве, но когда я добавляю аудио (mp3s), создается элемент DOM, но он никогда не запускаетonload поэтому приложение никогда не запускается. Я пытался добавитьtmp.load() уже, но это не имело никакого значения - также я не мог действительно найти исчерпывающую информацию в Интернете. Возможен ли такой подход? ДелаетAudio() даже запустить соответствующее событие? Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос