在播放另一个 YouTube iframe 时停止任何嵌入式 YouTube iframe

Stop any embeded YouTube iframe when another is played

我在我的页面中嵌入了大约 10 个 YouTube iframe,它们都有自己的自定义 play/pause 按钮。我已经使用此解决方案开始 http://jsfiddle.net/buuuue/dzroqgj0/ 但我不确定如何调整这段代码以在另一个视频开始时停止正在播放的任何其他视频...

function stopVideo(player_id) {
    if (player_id == "player1") {
        player2.stopVideo();
    } else if (player_id == "player2") {
        player1.stopVideo();
    }
}

例如,如果玩家 1 当前正在玩,而玩家 3 正在玩,我希望玩家 1 停止玩。我也研究了这个解决方案 ,但我认为我需要通过 JS 创建播放器,这样我也可以创建自定义 play/pause 按钮。

在此先感谢您的帮助!

创建播放器后将它们推送到数组中。

    var vids =[];
    player1 = new YT.Player('player1', {
     //stuff
    });
    vids.push(player1);

    player2 = new YT.Player('player2', {
     // stuff
    });
    vids.push(player2);

    ....
    ..
    playerN = new YT.Player('playerN', {
     // stuff
    });
    vids.push(playerN);

每个玩家对象的id都可以通过它的a.id 属性访问(a本身是一个对象,id是一个属性(字符串) )

现在,当用户玩给定玩家时,您只需暂停所有其他玩家,除了正在播放的那个(您在 stopVideo 中获得的 ID)。因为您有 ID,这很容易

 function stopVideo(player_id) {
  for(var i=0;i<vids.length;i++){
    if (player_id !=vids[i].a.id)    
      vids[i].stopVideo();
  }
 }

示例:- http://jsfiddle.net/4t9ah1La/

如果您不是通过脚本创建播放器,而是只是嵌入 iframe,那么 this answer mentioned by vbence is enough , below is a demo of that with improvements suggested by Jennie

示例:- http://jsfiddle.net/fyb7fyw1/

所有版权归原作者所有