MediaElement.js остановить всех игроков - PullRequest
4 голосов
/ 05 февраля 2011

Я уже некоторое время играю с MediaElement.js и у меня есть новое приложение, которое использует 20 игроков на одной странице.Мне бы хотелось, чтобы песни останавливались при воспроизведении другой, а не перекрывали дорожки во время их воспроизведения.Кажется, я не могу найти легкий способ взломать это - может быть, кто-то знает способ?

Спасибо.

Ответы [ 4 ]

6 голосов
/ 05 февраля 2011

В jQuery вы можете сделать

$('video,audio').each(function() {
      $(this)[0].pause();
});

Дайте мне знать, если это работает.

3 голосов
/ 17 марта 2015

Самое простое, что я нашел с помощью jQuery:

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

Один вкладыш для победы!Это также позволяет избежать ошибок JS , поскольку оно не предназначено непосредственно для элементов, благодаря jQuery.

3 голосов
/ 04 ноября 2014

MediaElement.js создает глобальный объект «mejs» с атрибутом «Players», который содержит информацию обо всех созданных вами игроках. Игроки называются mep_0, mep_1 и т. Д.

Если вы используете подчеркивание / lodash, вы можете написать что-то вроде

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

Если вам нужен чистый js-код, вы можете использовать оператор 'for'

for (var player in mejs.players) {
    mejs.players[player].media.stop();
}
3 голосов
/ 07 февраля 2011

Быстрый и грязный;)

$(".mejs-play").live('click',function(){
  $(".mejs-pause").trigger('click');                              
});
...