暂停JW播放器?

我有三个标签。

每个标签在滑块中有两个video。 问题是当我切换任何标签点击任何一个video时,所有其他video都应暂停。

我可以收集所有的id然后循环使用stop()。但是有没有其他方法更清洁和更简单。

jwplayer('video_pub').stop(); //for 1 video..how can i do for all videos? 

而不是使用jwplayer().stop() ,你可以使用jwplayer().pause()

为此,我更喜欢jwplayer().play(false).

资料来源: Jwplayer API

逻辑

只需获取包含所有标签的父video包装器(因为每个标签有两个video)…找到当前正在播放的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),两者都可以

在video设置中,如果你这样使用它

 jwplayer("video_"+videoId).setup({ events : { onPlay : function (callback){ var playingVideoId = 'video_'+videoId; pauseMedia(playingVideoId); //pausing other simulatenously playing video in a tab } } }); 

我认为上面的代码可能会成功,只需试一试