我正在使用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?
答案 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。