2011-02-25 128 views
6

我想知道如何停止當前在DOM中的所有MediaElement播放器。我試過這個:如何停止所有正在播放的MediaElement播放器?

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

讓我知道這是否有效。

一個快速和骯髒的,但都沒有工作。

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

試圖做我的功課,但似乎無法找到答覆了。

回答

8

嘗試......

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

這裏有一個簡單的方法做一個「停止所有」。

當第一次創建的MediaElement的球員,創建它們各自明確地(而不是使用$('video,audio').mediaelementplayer()):

var mediaElementPlayers = []; 
$('video,audio').each(function(){ 
    mediaElementPlayers.push(new MediaElementPlayer(this)); 
}); 

然後,當你想阻止他們:

for (var i=0; i<mediaElementPlayers.length; i++){ 
    mediaElementPlayers[i].pause(); // pause 
    if (mediaElementPlayers[i].getCurrentTime()){ 
     mediaElementPlayers[i].setCurrentTime(0); // rewind 
    } 
} 
0

很不錯@ Bart

這裏是一個Barts功能的附加功能,用於在某個上下文(在某個元素內)停止音頻。有用的停止媒體在彈出播放時將其關閉,例如:

function stopAudio(context) { 
    for (var i=0; i<mediaElementPlayers.length; i++){ 
     if($(mediaElementPlayers[i].container).parents().find(context).length === 0) { 
      mediaElementPlayers[i].pause(); // pause 
      if (mediaElementPlayers[i].getCurrentTime()){ 
       mediaElementPlayers[i].setCurrentTime(0); // rewind 
      } 
     } 
    } 
} 
0

觸發暫停按鈕的點擊事件將工作.... check it here

$('.mejs-pause button').trigger("click"); 
相關問題