【问题标题】:Play selected audio while pausing/resetting others在暂停/重置其他音频时播放选定的音频
【发布时间】:2015-04-17 03:47:23
【问题描述】:

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

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

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

http://jsfiddle.net/txrcxfpy/

【问题讨论】:

    标签: javascript jquery html events audio


    【解决方案1】:

    使用下面的代码。检查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();
        }
      });
    });
    

    【讨论】:

    • 你昨天问了同样的问题然后删除。我已经创建了那个演示。你有昨天的小提琴链接吗?我的演示也可以工作
    • 发布后我很快意识到我想出了一个解决方案。这个问题更少涉及将先前选择的音频的currentTime重置为0。您现在拥有的代码会暂停音频,但不会重置时间。在您的小提琴中,第 3 行还有一个额外的 .
    • 是的,我会更新并删除 . 。唯一剩下的就是将其他音频重置为0 对吗?
    • 好的,谢谢!我可以再问一个问题吗?出于好奇,我尝试在曲目的开头和结尾淡化音频。出于某种原因,尽管它仅在第一次单击时执行音量增加/减少。你会碰巧知道为什么吗?我不想回答我的问题,但如果需要,我可以更新它或简单地创建另一个:jsfiddle.net/ge89g37o
    • 意思是我无法理解你的问题fading 是什么意思??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多