如何停止所有正在播放的MediaElement播放器?

时间:2011-02-25 00:29:52

标签: javascript jquery mediaelement.js

我想知道如何阻止当前DOM中的所有MediaElement播放器。我试过这个:

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

如果有效,请告诉我。

快速而肮脏,但都不起作用。

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

试图在这个上完成我的作业,但似乎无法找到回应。

4 个答案:

答案 0 :(得分:8)

试试这个......

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

答案 1 :(得分: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
    }
}

答案 2 :(得分: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
            }
        }
    }
}

答案 3 :(得分:0)

触发暂停按钮的点击事件将起作用.... check it here

old   1: drop type &tablespaceName.my_user_tab
new   1: drop type TESTTABLESPACEmy_user_tab
drop type TESTTABLESPACEmy_user_tab
*
ERROR at line 1:
ORA-04043: object TESTTABLESPACEMY_USER_TAB does not exist