Javascript停止播放不同的声音

时间:2017-01-11 15:39:03

标签: javascript html5-audio

我在javascript中构建一个简单的Web应用程序,其中3个按钮播放3种不同的mp3声音。我有点坚持逻辑。如果我按下按钮1然后按钮2我需要声音1停止并播放声音2.我该怎么做?

我的代码:

Javascript:

function playSound(el, soundfile) {
    if (el.mp3) {
        if(el.mp3.paused) el.mp3.play();
        else el.mp3.pause();
    } else {
        el.mp3 = new Audio(soundfile);
        el.mp3.play();
    }
}

HTML:

<a class="btn" onclick="playSound(this, 'sounds/sound-1.mp3');">sound 1</a>
<a class="btn" onclick="playSound(this, 'sounds/sound-2.mp3');">sound 2</a>
<a class="btn" onclick="playSound(this, 'sounds/sound-3.mp3');">sound 3</a>

提前致谢

1 个答案:

答案 0 :(得分:1)

将播放的音频存储在数组中:

var playing=[];

//when played
playing.push(el.mp3);

现在你可以让整个阵列沉默了:

playing.forEach(el=>el.pause());
playing=[];