如果我在 Chrome 中连续使用 soundjs 播放声音,计数会无限增加,WebAudioSoundInstance
因此内存消耗会增加。
怎么能避免呢?
createjs.Sound.registerSound("audio/alarm.mp3", "alarm");
setInterval(function () {
createjs.Sound.play("alarm");
}, 6500);
如果我在 Chrome 中连续使用 soundjs 播放声音,计数会无限增加,WebAudioSoundInstance
因此内存消耗会增加。
怎么能避免呢?
createjs.Sound.registerSound("audio/alarm.mp3", "alarm");
setInterval(function () {
createjs.Sound.play("alarm");
}, 6500);
我找到了解决这个问题的方法。每次播放声音时,它都会创建一个 webaudiosoundinstance,它也会返回它,您可以将其存储到一个变量中,如果该变量存在且不为空,您可以调用 play 而不是调用全局函数...这将在间隔内保持记忆稳定,不需要卸载和重新加载声音。
现在我发现了这个肮脏的解决方法:
var i = 0;
createjs.Sound.registerSound("audio/alarm.mp3", "alarm");
setInterval(function () {
if (i == 10) {
createjs.Sound.removeSound("alarm");
createjs.Sound.registerSound("audio/alarm.mp3", "alarm");
i = 0;
}
createjs.Sound.play("alarm");
i++;
}, 6500);