JS - 当另一个视频开始播放时停止多个YouTube视频

时间:2015-10-03 14:36:40

标签: javascript arrays iframe youtube

我使用以下代码(由我的朋友编写,我是JS的初学者)使用不同的YouTube视频创建多个iframe,然后我可以使用seekTo从文本中链接到该iframe( t)功能 -

var players = [];

function onYouTubeIframeAPIReady() {
    YTready()
}

function createPlayer(ref, divID, videoID) {
    players[ref] = new YT.Player(divID, {
        height: '360',
        width: '640',
        videoId: videoID,
        events: {}
    });
}

function jumpToTimecode(ref,t){
    for(var i=0;i<players.length;i++){
        if(i!=ref){
            players[i].stopVideo()
        }
    }
    players[ref].seekTo(t)
    players[ref].playVideo()
}      

它包含一种在用户点击链接后停止所有其他视频的方法。如果用户只需点击其中一个YouTube播放器上的播放按钮,我想要做的就是添加一个可以执行相同操作的功能(停止页面上的所有其他视频)。

我正在考虑在createPlayer函数中定义一个onStateChange&#39;:onPlayerStateChange事件,然后添加一个函数,让任何一个玩家改变他们的状态来播放// if(event.data == 1)//将遍历所有玩家并停止任何不是被点击的玩家。但是,我不确定如何引用被点击的玩家(因为它可能是其中任何一个,所以我不能提前知道它的参考值)。< / p>

或者这是错误的方法吗? 任何帮助将非常感谢。

1 个答案:

答案 0 :(得分:-1)

好的,我解决了这个问题(在我朋友的帮助下)。

function onPlayerStateChange(event) {
    if(event.data == 1) {
        var ref = event.target.f.id
        for(var i=0;i<players.length;i++){
        if(players[i].f.id != ref){
            players[i].stopVideo()
        }
      }
   }
}

,event.target.f.id是玩家在创建时给予的唯一ID(由我)。