多个视频时,YouTube播放器状态会产生错误结果吗?

时间:2015-09-24 15:27:00

标签: javascript youtube-api

我将youtube视频嵌入到页面中,当播放器状态发生变化时(当视频播放或暂停时),我将视频播放类添加到容器中并将其删除。

当只有1个视频时,以下工作正常。但是,如果有2个视频,则添加该类并几乎立即删除。

我认为这是因为window.YT.PlayerState并不限制当前状态发生变化的视频。我该如何纠正这个范围?

注意,一次只能播放1个视频。视频位于旋转木马中,当您转到下一张幻灯片时,视频会暂停。

    if ($youtubeVideos.length) {
      var tag = document.createElement('script'),
        firstScriptTag = document.getElementsByTagName('script')[0];
      tag.src = '//www.youtube.com/iframe_api';
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

      window.onYouTubeIframeAPIReady = function() {
        $youtubeVideos.each(function () {
          var player = new window.YT.Player(this.id, {
            events: {
              onReady: function (e) {
                var state = e.target.getPlayerState();
                if (state === window.YT.PlayerState.BUFFERING || state === window.YT.PlayerState.PLAYING) {
                  $element.addClass('video-playing');
                  activePlayer = player;
                }
              },
              onStateChange: function (e) {
                if (e.data === window.YT.PlayerState.BUFFERING || e.data === window.YT.PlayerState.PLAYING) {
                  $element.addClass('video-playing');
                  activePlayer = player;
                } else {
                  $element.removeClass('video-playing');
                  activePlayer = null;
                }
              }
            }
          });
        });
      };
    }

0 个答案:

没有答案