获取下一个播放视频的视频ID?

时间:2015-11-11 16:05:56

标签: javascript youtube-api

我正在使用Youtube API通过它的videoId播放视频。一切正常,youtube视频有效:

var player = new YT.Player("videoplayer", {
  height: 400, 
  width: 600, 
  videoId: videoId, 
  events: {
    onReady: function (event) {
      event.target.playVideo();
    }
  }
});

视频播放完毕后,Youtube会显示推荐视频的缩略图。是否可以获取用户点击的视频的videoId?

我希望我可以使用onStateChange方法,但看起来没有状态可以描述正在播放的视频已更改。

是否有标准方法可以获取用户选择的下一个Youtube视频的视频ID?

1 个答案:

答案 0 :(得分:0)

好吧,我调查了一下。当用户点击要观看的下一个视频时,并不会触发任何事件,但API会触发onApiChange事件。

因此,您可以检查视频ID的更改,如果有更改,则运行回调:

var oldVideoId = 'abcd';
var checkIfVideoIdChanged = function(event) {
  var newVideoId = event.target.getVideoData().video_id

   if (newVideoId !== oldVideoId) {
     // Do your 'event' logic here
   }
};
var player = new YT.Player("videoplayer", {
  height: 400, 
  width: 600, 
  videoId: videoId, 
  events: {
    onReady: function (event) {
      event.target.playVideo();
    },
    onStateChange: function(event) {
      checkIfVideoIdChanged(event);
    },
    onApiChange: function(event) {
      checkIfVideoIdChanged(event);
    }
  }
});

编辑:您应该检查onApiChange和onStateChange,因为有时在新视频立即开始播放时不会触发onApiChange。