1

如果我在 Chrome 中连续使用 soundjs 播放声音,计数会无限增加,WebAudioSoundInstance因此内存消耗会增加。
怎么能避免呢?

createjs.Sound.registerSound("audio/alarm.mp3", "alarm");

setInterval(function () {
 createjs.Sound.play("alarm");
}, 6500);

对象实例的屏幕截图

4

2 回答 2

1

我找到了解决这个问题的方法。每次播放声音时,它都会创建一个 webaudiosoundinstance,它也会返回它,您可以将其存储到一个变量中,如果该变量存在且不为空,您可以调用 play 而不是调用全局函数...这将在间隔内保持记忆稳定,不需要卸载和重新加载声音。

于 2018-02-18T15:56:01.510 回答
0

现在我发现了这个肮脏的解决方法:

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);
于 2017-07-10T10:03:57.557 回答