在暂停/重置其他音乐时播放所选音频

时间:2015-04-17 03:47:23

标签: javascript jquery html5 events audio

我有两个音频元素通过按钮的点击事件播放。如果选择了另一个,我已成功设法暂停一个,但还需要将暂停的元素设置回0.0秒(即暂停和重置)。

我知道Javascript目前没有stop()方法,因此假设可以通过将currentTime设置为0来完成此操作。如果是这样,我就无法找到将此方法合并到我的代码中的最佳方法。

现在我使用$(".audio").trigger("pause");在条件的后半部分暂停所有音频元素,这在性能上并不太高效。暂停和重置以前播放的音频文件而不是页面上的每个音频文件的最佳方法是什么?

http://jsfiddle.net/txrcxfpy/

1 个答案:

答案 0 :(得分:0)

使用下面的代码。检查DEMO

 $(function() {    
  $('.track-button').click(function() {
    var reSet = $('.track-button').not($(this)).siblings(".audio").get(0);
    reSet.pause();
    reSet.currentTime = 0;

    var $this          = $(this),
        trackNum       = $this.text(),
        currentAudio   = $this.siblings(".audio"),
        audioIsPaused  = currentAudio.get(0).paused;

    if (audioIsPaused) {
        currentAudio.get(0).play();
    } else {
        currentAudio.get(0).pause();
    }
  });
});