我用 jQuery 编写了一些 JavaScript,它加载了一个带有 HTML 5<audio>
标记的声音文件,然后单击鼠标开始播放该声音文件的一个新实例(以便它可以并行/叠加播放多次)。
HTML:
<audio id="audiotemplate" src="audio/myfile.ogg"></audio>
JavaScript:
mybutton.click(function() {
$('#audiotemplate').clone()[0].play();
});
这按预期工作,但会造成内存泄漏,如果您单击该按钮太多次,则会导致 FF 耗尽系统 RAM 和 Chromium 以显示其“Ah,Snap”页面。
编辑:为了快速测试,最好使用$(document).keypress
而不是mybutton.click
按住按钮。
<audio>
声音文件播放完后如何清理元素?
注意:我不会将克隆的元素插入到页面中。
注意2:如果您单击,也会发生泄漏,等到声音结束,再次单击...
(我对解决方案感到满意,但也感谢解释为什么会发生泄漏。)