如何在播放JS时停止HTMLAudioElement?

时间:2016-04-23 11:27:45

标签: javascript html audio

一个应用程序正在播放一个音频片段,其中HTMLAudioElement嵌套在一些JavaScript中,如下所示

var s = new Audio('/sounds/s.wav');
s.play();

HTMLAudioElement docs:https://developer.mozilla.org/en-US/docs/Web/API/HTMLAudioElement

问题是每次用户采取行动时都需要播放剪辑。但如果前一个音频片段仍在播放,则下一个片段将无法播放(延迟或完全跳过)。

那么有没有办法在播放音频剪辑的过程中切断它?

s.stop()

之类的东西

更新

也许这仍然是一个重复的问题...

有多个音频剪辑用于不同的操作,因此如果从引用的重复问题中实现sound.pause();sound.currentTime = 0;,它可能看起来像这样,可以在每个剪辑之前运行。

function stopSounds() {
    sound1.pause();
    sound1.currentTime = 0;

    sound2.pause();
    sound2.currentTime = 0;

    sound3.pause();
    sound3.currentTime = 0;

    sound4.pause();
    sound4.currentTime = 0;

    sound5.pause();
    sound5.currentTime = 0;

    sound6.pause();
    sound6.currentTime = 0;

    sound7.pause();
    sound7.currentTime = 0;
}

2 个答案:

答案 0 :(得分:0)

您要搜索的功能是s.pause(); 如果您想要再次启动文件的开头,那么您必须设置s.currentTime = 0;(因为我知道它会立即开始播放,至少在Chrome中播放)。

答案 1 :(得分:0)

只需调用此函数:

  var s = new Audio('/sounds/s.wav');
  s.play(); 
  s.pause();