播放另一个时,暂停所有其他YouTube iframe

时间:2014-12-15 12:04:55

标签: javascript iframe youtube youtube-api youtube-javascript-api

我在一个页面上嵌入了多个YouTube iframe。我希望当一个视频开始播放时,所有其他视频应该停止/暂停。

我找到了similar question,其中用户使用iframe API在1页上为2个嵌入式iframe执行此操作。现在我的iframe是动态创建的,页面上有2个iframe。

我已经在使用iframe API来跟踪GA事件。以下是我的代码

var tag = document.createElement('script');
tag.src = "http://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

function onYouTubeIframeAPIReady(event) {
  player = new YT.Player('ytplayer', {
    events: {
      'onReady': onPlayerReady,
      'onStateChange': onPlayerStateChange
    }
  });
}

var pauseFlag = false;
function onPlayerReady(event) {
}
function onPlayerStateChange(event) {
    if (event.data == YT.PlayerState.PLAYING) {
        ga('send', 'event', 'Youtube', 'Play', player.getVideoData().title);
        pauseFlag = true;
    }
    if (event.data == YT.PlayerState.PAUSED && pauseFlag) {
        ga('send', 'event', 'Youtube', 'Pause', player.getVideoData().title);
        pauseFlag = false;
    }
    if (event.data == YT.PlayerState.ENDED) {
        ga('send', 'event', 'Youtube', 'Finished', player.getVideoData().title);
    }
}

如何使用onPlayStateChange()功能停止/暂停任何其他视频播放?

1 个答案:

答案 0 :(得分:-1)

您可以访问特定播放器并停止播放。

var myPlayer = document.getElementById('playerid');
    myPlayer.stopVideo();