oncanplaythrough not firing

时间:2017-05-24 18:32:53

标签: javascript audio garbage-collection

我正在预加载一些声音,以便稍后在我的程序中使用它们。代码如下:

for (i = 0; i < urlList.length; i++) {
    var audio = new Audio();
    audio.addEventListener('canplaythrough', function () {
        console.log("loaded");
    });
    audio.src = urlList[i];
}

我不需要将音频对象存储在任何地方,因为我稍后会创建新的音频对象。据我所知,如果我加载一次,它就不会再加载它,如果它是相同的文件,所以我的方法在这个意义上是可以的。

有什么不好的,有时事件根本不会发生!我添加了console.log来检查它。

现在,我的猜测是垃圾收集器看到一些未引用的对象并将其处理掉。我的担忧是对的吗?我怎么能阻止这个?即使我将它们存储到某个变量中,它也可以在脚本完成后立即处理。我需要等到声音加载并且事件发生。

0 个答案:

没有答案