代码之家  ›  专栏  ›  技术社区  ›  HIRA THAKUR

暂停JW播放器?

  •  4
  • HIRA THAKUR  · 技术社区  · 10 年前

    我有三个标签。

    每个选项卡在滑块中有两个视频。 问题是当我切换任何选项卡时 单击任何一个视频,所有其他视频都应该暂停。

    我可以收集所有的id,然后循环使用stop()。但是还有其他方法更干净、更简单吗。?

    jwplayer('video_pub').stop(); //for 1 video..how can i do for all videos?
    
    1 回复  |  直到 10 年前
        1
  •  8
  •   Hitesh    9 年前

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

    对于这个,我更喜欢 jwplayer().play(false).

    资料来源: Jwplayer API

    逻辑

    只需获取具有所有选项卡的父视频包装器(因为 每个选项卡有两个视频)。。。查找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
    
    }
    }
    });
    

    我认为上面的代码可能会奏效,试试看