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

时间:2017-02-17 12:14:09

标签: javascript jquery html5 audio audio-player

我在html5页面上有超过5个audioplayer.js的音频播放器。

有没有人在js中有一个简单的脚本在当前玩家正在播放时暂停所有其他玩家?

jQuery的:

$( function(){
   $("audio").audioPlayer();
});

https://osvaldas.info/examples/audio-player-responsive-and-touch-friendly/audioplayer.js

我试过如下

window.player = $('audio')[0];
$('.audioplayer-playpause').click(function () {
    if (player.paused) {
        player.play();
    } else {
        player.pause();
    }
});

我做了一个jsFiddle只是为了简化事情,下面是链接:

JS Fiddle for Audio Player

1 个答案:

答案 0 :(得分:3)

尝试以下代码。我已经在JS Fiddle& amp;它正在工作:) :)

更新了JSFiddle

将此代码放入Javascript&删除你的。

document.addEventListener('play', function(e){
    // get all <audio> tag elements in the page.
    var allAudios = document.getElementsByTagName('audio');
    // Iterate through all players and pause them, except for
    // the one who fired the "play" event ("target")
    for(var i = 0; i<allAudios.length; i++){
        if(allAudios[i] != e.target){
            allAudios[i].pause();
        }
    }
}, true);