我有三个标签。
每个标签在滑块中有两个视频。 问题是当我切换任何标签或点击任何一个视频时,所有其他标签都应暂停。
我可以收集所有id然后循环使用stop()。但是还有其他方法更清洁,更简单。?
jwplayer('video_pub').stop(); //for 1 video..how can i do for all videos?
答案 0 :(得分:6)
您可以使用jwplayer().stop()
jwplayer().pause()
为此,我更喜欢jwplayer().play(false).
来源:Jwplayer API
<强> LOGIC 强>
只需获取包含所有标签的父视频包装器(从那时起) 每个标签有两个视频)...找到当前正在播放的jwplayer 播放并阻止所有其他玩家。
pauseMedia : function(playingMediaId) {
$('#parent_video_wrapper').find('.jwplayer, object').each(function(){
currentMediaId =$(this).attr('id');
if( jwplayer(this).getState() == "PLAYING" || jwplayer(this).getState() == "BUFFERING" ) {
if(currentMediaId != playingMediaId){
jwplayer(this).play(false);
}
}
});
}
现在你可以使用上面的函数作为pauseMedia()或 pauseMedia(mediaId),两者都可以工作
在视频设置中,如果你像这样使用它
jwplayer("video_"+videoId).setup({
events : {
onPlay : function (callback){
var playingVideoId = 'video_'+videoId;
pauseMedia(playingVideoId);
//pausing other simulatenously playing video in a tab
}
}
});
我认为上面的代码可能会解决问题,只需尝试一下