我有10个音频播放器与简单的html音频标签在一个html5页面。没有jquery,没有特别的音频js插件等等..。
有没有人在js中有一个简单的脚本来在当前玩家播放时暂停所有其他玩家?
我不想使用js插件,因为我想保留一个简单的音频html代码。
发布于 2013-11-05 15:09:52
您可以使用事件委托。只需在捕捉阶段收听播放事件,然后暂停所有视频文件,但不是目标文件:
document.addEventListener('play', function(e){
var audios = document.getElementsByTagName('audio');
for(var i = 0, len = audios.length; i < len;i++){
if(audios[i] != e.target){
audios[i].pause();
}
}
}, true);
发布于 2015-03-14 04:30:19
您可以使用存储当前播放元素的引用,而不是遍历页面上的所有音频标记并暂停它们,并且在播放另一个元素时只有一个暂停。
document.addEventListener("play", function(evt) {
if(this.$AudioPlaying && this.$AudioPlaying !== evt.target) {
this.$AudioPlaying.pause();
}
this.$AudioPlaying = evt.target;
}, true);
发布于 2016-06-11 14:21:29
之前的两个答案都不管用,我就用过了。我刚刚添加了&& window.$_currentlyPlaying != evt.target
,一切都在工作。同时,我还为音频标签创建了一个带有这个和其他好处的要点。javascript-音频标签
window.addEventListener("play", function(evt)
{
if(window.$_currentlyPlaying && window.$_currentlyPlaying != evt.target)
{
window.$_currentlyPlaying.pause();
}
window.$_currentlyPlaying = evt.target;
}, true);
https://stackoverflow.com/questions/19790506
复制相似问题