gpt4 book ai didi

javascript - 一段时间后HTML5音频停止工作(泄漏)

转载 作者:行者123 更新时间:2023-12-03 02:06:14 29 4
gpt4 key购买 nike

因此,我正在开发HTML5 / javascript rts游戏。观察一直有几种声音在播放。因此,对我来说,是一段时间后声音听起来像是“崩溃”,并且此浏览器选项卡上的所有声音都停止了工作。我只能通过重新启动浏览器来恢复声音,重新启动选项卡(=重新加载游戏)不能解决该问题。这是我用来播放声音的内容:

// play sound
soundToPlay.load();
soundToPlay.play();
soundToPlay.volume = volume;

我在win7和FF上。当我玩游戏时,Windows进程“audiodg”的内存使用量也会增加,而当声音停止工作时,声音通常会升高到2.5 gb。当我关闭浏览器时,大多数时候它会回落到几MB,应该在正常水平。这个audiodg问题是一个已知的错误(不是我的游戏,而是一般而言),但是我在游戏之外没有任何与audiodg有关的问题。我的游戏的大多数用户似乎都没有这个问题,只有相对较少,但绝对不是唯一的问题,也绝对不是FF的问题,我也看到它发生在chrome上。

最佳答案

因此,我的猜测是,每次必须播放new Audio(filename)时,您都在创建它。

因此,即使使用javascript创建这些代码,您还是要得到一个HTML模板。

var a = new Audio('file.mp3');
// <audio preload=​"auto">​</audio>​

有鉴于此,您应该只调用 new Audio(filename)一次,并将其存储在一个变量中,该变量在播放声音时可以被引用:
var clone = $(a).clone()[0];
clone.play();
clone.volume = volume;
clone.onended = function() {
$(clone).remove();
}

关于javascript - 一段时间后HTML5音频停止工作(泄漏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27809792/

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