我正在预加载一些声音,以便稍后在我的程序中使用它们。代码如下:
for (i = 0; i < urlList.length; i++) {
var audio = new Audio();
audio.addEventListener('canplaythrough', function () {
console.log("loaded");
});
audio.src = urlList[i];
}
我不需要将音频对象存储在任何地方,因为我稍后会创建新的音频对象。据我所知,如果我加载一次,它就不会再加载它,如果它是相同的文件,所以我的方法在这个意义上是可以的。
有什么不好的,有时事件根本不会发生!我添加了console.log来检查它。
现在,我的猜测是垃圾收集器看到一些未引用的对象并将其处理掉。我的担忧是对的吗?我怎么能阻止这个?即使我将它们存储到某个变量中,它也可以在脚本完成后立即处理。我需要等到声音加载并且事件发生。