Javascript - 如何在没有内存泄漏的情况下播放大量声音?

时间:2015-11-15 00:54:40

标签: javascript audio

我正在使用javascript创建一些需要播放大量声音的内容。

这是我播放声音的代码:



var playsound = function() {
soundthing = document.createElement('audio');
soundthing.setAttribute('src', 'http://mylegguy.x10.mx/GmsJs/happy.wav');
soundthing.play();
}
playsound();




在播放了几百个相同的声音之后,我得到了#34;出了问题" Google Chrome上的消息。随着更多声音的播放,我可以看到内存上升和下降。

我做错了什么?

2 个答案:

答案 0 :(得分:3)

它不应该是内存泄漏,如果是,它似乎是Chrome中的一个错误。但是,我绝对只会在你的游戏功能之外只创建一次<audio>元素,然后一遍又一遍地重复使用它。

答案 1 :(得分:1)

使用HTML5 audio-API: http://www.w3schools.com/html/html5_audio.asp

<强> // HTML

<div class="lg-12">
          <audio id="player" controls="controls">
            <source id="sourceOgg" src="" type="audio/ogg" />
            <source id="sourceMp3" src="" type="audio/mp3" />
            Your browser does not support the audio element.
          </audio>
        </div>

<强> // SCRIPT

function loadSong(){

    var player=document.getElementById('player');
    sourceMp3.src='my-song.wav';

    player.load(); //just start buffering (preload)
    playSong();
}

function playSong(){
    player.play(); //start playing
}