如何停止所有正在播放的MediaElement播放器?
问题描述:
我想知道如何停止当前在DOM中的所有MediaElement播放器。我试过这个:如何停止所有正在播放的MediaElement播放器?
$('video,audio').each(function() {
$(this)[0].player.pause();
});
让我知道这是否有效。
一个快速和肮脏的,但都没有工作。
$(".mejs-play").live('click',function(){
$(".mejs-pause").trigger('click');
});
试图做我的功课,但似乎无法找到答复了。
答
尝试......
$('video, audio').each(function() {
$(this)[0].pause();
});
答
这里有一个简单的方法做一个“停止所有”。
当第一次创建的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
}
}
答
很不错@ 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
}
}
}
}