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

Posted

技术标签:

【中文标题】多个音频,当当前正在使用 javascript 播放时自动停止其他【英文标题】:multiple audio, auto stop other when current is playing with javascript 【发布时间】:2017-02-17 12:14:08 【问题描述】:

我在一个 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】:

试试下面的代码。我已经在 J​​S Fiddle 中对其进行了测试,它正在工作:) :)

更新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);

【讨论】:

Noooo.. 你已经删除了插件初始化。请不要修改播放器代码 我已经知道这个代码了.. 这在这个播放器上不起作用 为什么要用window作为作用域?

以上是关于多个音频,当当前正在使用 javascript 播放时自动停止其他的主要内容,如果未能解决你的问题,请参考以下文章

Python 音频只会让窗户发出叮叮当当的声音

Javascript按钮多个音频源

从视频制作音频播客的服务? [关闭]

按顺序播放多个音频文件(Javascript)

在 HTML5 中使用音频标签时如何避免主播重新播放音乐?

当通过 JavaScript 填充源时,Html5 音频不会在 Safari 中播放