我正在使用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?
好的,我研究过了。当用户点击下一个视频观看时,并没有触发事件,但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不会被触发。