使用 HTML5 音频丢弃 Javascript 中的音效?

问题描述 投票:0回答:1

我正在使用画布标签构建一个简单的游戏,并想为其添加一些声音效果。 如果我使用以下代码来播放 SFX...

function playSfx( sound ) {
 var snd = new Audio("file.mp3");
 snd.play();
}

垃圾收集/内存管理是否足够聪明,可以播放声音,然后处理 Audio 对象?或者我是否必须跟踪该对象并在其播放完毕后销毁它?

javascript audio html
1个回答
0
投票

通常垃圾收集器确实可以轻松删除音频对象。他们在这方面非常有效率。但是,如果您播放大量音频,则可能会遇到问题。因此,以防万一您应该使用事件侦听器手动管理它们。 例如:

let audioTrash = {} // Define an object to store trash or cache.
audioTrash.audio = new Audio('./audioFilesXD/walkingLikeMichaelJackson.mp3/');
audioTrash.audio.play();
audio.addEventListener('ended', () => {
    delete audioTrash.audio;
})

这是一种可以做到的方法。可能不是最好的,但我希望它能帮助你:)

© www.soinside.com 2019 - 2024. All rights reserved.