如何停止使用 jQuery 播放其他音频元素

Posted

技术标签:

【中文标题】如何停止使用 jQuery 播放其他音频元素【英文标题】:How to stop other audio elements from playing with jQuery 【发布时间】:2014-04-30 20:06:52 【问题描述】:

我在一个 html 页面上有多个默认的 HTML5 音频播放器。我正在努力做到这一点,当您播放一个文件然后播放另一个文件时。第一个文件将暂停。

我开始并创建了一个函数如下:

allAudioEls = $('audio');

    function pauseAllAudio() 
       allAudioEls.each(function() 
          var a = $(this).get(0);
          a.pause();
       );
    

下一步是什么?

【问题讨论】:

你好,尝试使用$(this)[0].pause();而不是$(this).get(0); a.pause(); @Nicolai 我必须在单击音频播放器播放按钮和暂停按钮时调用该函数。我不知道如何绑定播放或暂停事件来调用该函数并播放单个音频。 检查this和this 第一个链接将向您展示如何将侦听器添加到“播放”事件。因此,您可以将 pauseAllAudio 函数代替“foo”放置 @Nicolai 我正处于如果我按下播放所有内容都会暂停的地步,并且那个单独的音频不会播放。我需要运行停止所有音频的功能,然后开始播放单击播放按钮的音频。这是我的代码: allAudioEls = $('audio'); $('audio').bind('play', function(e) allAudioEls.each(function() var a = $(this).get(0); a.pause(); ); ) ; 【参考方案1】:

我认为这是最适合您的答案:Stop other Audio ...

您只需要使用 JQuery 添加以下脚本。

JavaScript:

$("audio").bind("play",function ()
  $("audio").not(this).each(function (index, audio) 
    audio.pause();
  );
);
//Must be added at the bottom in HTML CODE

【讨论】:

【参考方案2】:

我认为这就是您要寻找的: JsFiddle link

HTML:

<audio id="audio" controls>
</audio>
<audio id="audio1" controls>    
</audio>

Javascript:

$("audio").each(function()
  $(this).bind("play",stopAll);
);

function stopAll(e)
    var currentElementId=$(e.currentTarget).attr("id");
    $("audio").each(function()
        var $this=$(this);
        var elementId=$this.attr("id");
        if(elementId!=currentElementId)
            $this[0].pause();
        
    );

【讨论】:

【参考方案3】:

使用 jquery 很容易。下面是音频和视频的示例

$("audio").on("play", function() 
    var id = $(this).attr('id');

    $("audio").not(this).each(function(index, audio) 
        audio.pause();
    );
);

$("video").on("play", function() 
    var id = $(this).attr('id');

    $("video").not(this).each(function(index, video) 
        video.pause();
    );
);

【讨论】:

以上是关于如何停止使用 jQuery 播放其他音频元素的主要内容,如果未能解决你的问题,请参考以下文章

多个音频,当当前正在使用 javascript 播放时自动停止其他

如何使用jQuery无限循环播放音频文件

如果我们需要播放另一个音频,如何停止音频

使用 jQuery 单独播放每个音频元素

单击链接后 jQuery 音频停止

如何禁用音频(流)html5元素的自动播放