【问题标题】:Youtube video API onStateChange event cannot be used to change videoYoutube 视频 API onStateChange 事件不能用于改变视频
【发布时间】: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(),视频会发生变化。如果我等待视频终止,则会将“完成”消息打印到控制台,但视频不会改变。任何想法我做错了什么?

我在这里放了一个小提琴。谢谢!

http://jsfiddle.net/PHXY2/

【问题讨论】:

  • 我已经设法通过将 goNext() 函数更改为此函数 onPlayerStateChange(event) { if(event.data === 0) { event.target.loadVideoById('JBJ1VPBrCl0', 0, '默认');但我不明白为什么我以前的代码不起作用。

标签: javascript api events video youtube


【解决方案1】:

FWIW,您的小提琴示例对我来说效果很好(视频结束后它会自动开始播放“短 - 猫喵 - 有趣的猫视频 - 红色激光”视频)你之前是否碰巧安装了任何与 YouTube 相关的浏览器扩展?已知一些会导致 YT API 出现问题。

【讨论】:

  • 我停用了所有扩展程序,但问题仍然存在。但是,我在 Firefox 中尝试过,它可以工作。显然谷歌浏览器有问题,但与扩展无关
  • 嗯...我之前在这里运行 Chrome(在 Win7 机器上)很好(版本 33.0.1750.154m)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多