Javascript 获取播放的下一个视频的视频id?
我正在使用Youtube API通过其videoId播放视频。这一切都很好,youtube视频也很好:Javascript 获取播放的下一个视频的视频id?,javascript,youtube-api,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(); } } }); 视频结束时,Youtu
var player = new YT.Player("videoplayer", {
height: 400,
width: 600,
videoId: videoId,
events: {
onReady: function (event) {
event.target.playVideo();
}
}
});
视频结束时,Youtube将显示推荐视频的缩略图。是否可以获取用户单击的视频的视频ID
我希望我可以使用onStateChange方法,但它看起来并没有一个状态来描述正在播放的视频被改变了
有没有一种标准的方法来获取用户选择的下一个Youtube视频的视频id?好的,我查过了。当用户单击要观看的下一个视频时,不会触发任何事件,但API将触发OnapicChange事件 因此,您可以检查视频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不会被触发。从未使用过youtube api,但您不能将clickhandler添加到视频链接中,并通过访问处理程序中的$this.attrurl或$this.attrhref来获取视频url?@messervillyoutube的建议位于iframe中,因此我无法直接将事件附加到它们。Youtube IFrame API中也没有任何东西表明能够检测到对这些建议的点击:似乎onStateChange只是注意到,如果播放器暂停、播放或其他什么。我也找不到类似onVideoChange的内容,但您可以尝试保存实际的视频URL,并检查在触发onStateChange后URL是否已更改