2011-02-05 2 views
3

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

Спасибо.

ответ

5

В JQuery, вы могли бы сделать

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

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

+0

Nope. Не работает. Frown. –

+0

Джон, который определенно не работал, однако консоль, кажется, находит все элементы (она выплевывает список элементов). Это также не вызывает ошибки ... что является хорошим знаком. Но игроки не останавливаются! – David

+2

Мне удалось приостановить, сняв ссылку игрока: $ (this) [0] .pause(); – starpause

3

быстрый и грязный один;)

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

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

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

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

Если вам нужен чистый JS код, который вы можете использовать «для» оператора

for (var player in mejs.players) { 
    mejs.players[player].media.stop(); 
} 
3

Самый простой я нашел с JQuery:

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

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

+0

простой и эффективный –

Смежные вопросы