2014-04-30 31 views
1

停止播放其它音頻元素我有一個HTML頁面上的多個默認HTML5音頻播放器。當你播放一個文件然後播放另一個文件時,我試圖做到這一點。第一個文件將暫停。如何從用jQuery

我開始和如下創造了一個功能:

allAudioEls = $('audio'); 

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

什麼下一步?

+0

您好,嘗試使用'$(this)[0] .pause();'而不是'$(this).get(0); a.pause();' – Nicolai

+0

@Nicolai我要調用函數時的音頻播放器播放按鈕和暫停按鈕被點擊。我不知道如何綁定播放或暫停事件來調用該功能並播放單個音頻。 – Dondada

+0

檢查[此](http://stackoverflow.com/questions/6312714/adding-event-listener-to-audio-html5-tag-in-javascript)和[此](http://jsfiddle.net/aarongloege/fzXsT /光/) – Nicolai

回答

0

我認爲這是你在找什麼: JsFiddle link

HTML:

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

的Javascript:容易使用jQuery

$("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(); 
     } 
    }); 
} 
0

多數民衆贊成。下面是音頻和視頻的示例

$("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(); 
    }); 
});