【发布时间】:2014-03-16 01:31:36
【问题描述】:
我想使用 Youtube API 提供的 onStateChange 事件来监听视频的结尾,然后在播放器中播放一个新视频。但是,由于某种原因,这似乎是不可能的。
function onPlayerStateChange(event) {
if(event.data === 0) {
console.log('done');
goNext();
}
}
function goNext() {
player.loadVideoById('JBJ1VPBrCl0', 0, 'default');
}
我像这样注册事件处理程序
player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
height: '530',
width: '640',
videoId: '0Bmhjf0rKe8',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
问题是:如果我手动调用我的函数 goNext(),视频会发生变化。如果我等待视频终止,则会将“完成”消息打印到控制台,但视频不会改变。任何想法我做错了什么?
我在这里放了一个小提琴。谢谢!
【问题讨论】:
-
我已经设法通过将 goNext() 函数更改为此函数 onPlayerStateChange(event) { if(event.data === 0) { event.target.loadVideoById('JBJ1VPBrCl0', 0, '默认');但我不明白为什么我以前的代码不起作用。
标签: javascript api events video youtube