gpt4 book ai didi

javascript - 在 Chrome 中预加载多个 (798) 音频文件

转载 作者:行者123 更新时间:2023-11-30 20:56:50 29 4
gpt4 key购买 nike

我正在制作游戏,我想加载 798 个声音文件,但只有 Chrome 有问题,Firefox 没问题。示例代码:https://jsfiddle.net/76zb42ag/ ,查看控制台(按 F12)。

有时脚本只加载 100、500、700 个文件,有时没问题。如果我将文件数量减少到 ex。 300 可以(总是)。我怎么解决这个问题?我需要回调或任何想法?游戏将离线(节点 webkit)。

JavaScript 代码:

var total = 0;
// sample file to download: http://www.sample-videos.com/audio/mp3/crowd-cheering.mp3
// sounds.length = 798 files
var sounds = [

(...limit character, see https://jsfiddle.net/76zb42ag/...)
];

for (var i in sounds) {
load(sounds[i]);
}

function load(file) {
var snd = new Audio();
snd.addEventListener('canplaythrough', loadedAudio, false);
snd.src = file;
}


function loadedAudio() {
total++;
console.log(total);
if (total == sounds.length){
console.log("COMPLETE");
}
}

最佳答案

这不是真正的代码问题。这是一个普遍的架构问题。

不仅取决于样本的数量,还取决于样本的大小,一次加载它们的可能性不大。即使可以,它也会因为高内存使用率而运行得很差,并且可能会在一定时间后使选项卡崩溃。

由于它处于离线状态,我想说您甚至可以完全不预加载它们,因为读取速度几乎是瞬时的。

如果您发现它不合适,或者您可能一次需要 5 个声音,而且它可能太慢,我会说您需要以一种可以确定您想要的声音的方式来设计您的游戏您将需要特定的游戏状态,然后加载它们(并删除对您不需要的那些的引用,以便它们可以被垃圾收集)。

出于同样的原因,这正是所有游戏在向您显示加载屏幕时所做的。

如果您想避免“加载屏幕”,您可以想出一种方法来了解即将发生的事情并提前加载它,从而变得聪明起来。

关于javascript - 在 Chrome 中预加载多个 (798) 音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47572390/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com