MediaElement.js 停止所有播放器

4

我一直在尝试使用MediaElement.js,现在有一个新应用程序,在单个页面上使用了20个播放器。我希望能够在播放另一首歌曲时停止当前的播放,并且不会出现音轨重叠的情况。但是我似乎找不到一个简单的方法来解决这个问题 - 或许有人知道怎么做?

谢谢。

4个回答

6
在jQuery中,您可以这样做
$('video,audio').each(function() {
      $(this)[0].pause();
});

如果这个可行,请让我知道。


John,那肯定不行,但控制台似乎能找到所有元素(它会输出一个元素列表)。它也没有抛出错误……这是一个好兆头。但是玩家们并没有停下来! - David
2
我成功地通过移除播放器引用来暂停:$(this)[0].pause(); - starpause
@starpause是正确的,从“pause”前面删除“player”,它就可以正常工作了。谢谢! - ezekielDFM

3
一个快速而简单的方法 ;)
$(".mejs-play").live('click',function(){
  $(".mejs-pause").trigger('click');                              
});

3

我发现使用jQuery最简单:

$('video,audio').trigger('pause');

一行代码称王!而且还能避免JS错误,因为它不会直接针对元素,感谢jQuery。


简单有效 - Sunil Lama

3

MediaElement.js创建了一个名为“mejs”的全局对象,其中包含属性“players”,其中包含有关您创建的所有播放器的信息。播放器的名称为mep_0、mep_1等。

如果使用underscore / lodash,您可以编写类似以下内容的代码:

_.each(mejs.players, function(player) {
    player.media.stop();
});

如果你需要纯 JS 代码,可以使用 "for" 运算符。
for (var player in mejs.players) {
    mejs.players[player].media.stop();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接