Youtube API 未在 Firefox 中加载



我有这个测试滑块 http://jsfiddle.net/dUyLY/2/

在Chrome中,

它运行良好,但是在Firefox和safari中,当动画完成后,它会出错。在脚本文件中,我会在每个动画后检查当前可见元素是否是 youtube 播放器,如果是这样,请播放视频。离开幻灯片时,请暂停它。

我在控制台player.pauseVideo is not a function中收到此错误

有人对此有解决方案吗?

您正在推迟onYouTubePlayerAPIReady的定义。因此,YouTube API 很可能在定义onYouTubePlayerAPIReady之前完成。在这种情况下,代码将失败。

要解决此问题,请检查 API 在运行时是否已准备就绪。

window.onYouTubePlayerAPIReady = function () {
    player = new YT.Player('player', {
        height: '315',
        width: '560',
        videoId: 'bpOR_HuHRNs',
    });
};
if (window.YT) {
    // Apparently, the API was ready before this script was executed.
    // Manually invoke the function
    onYouTubePlayerAPIReady();
}

注意。对于简单的单向函数,例如 player.playVideo()player.pauseVideo() ,我建议使用这个简单的函数,它不像记录的 YouTube API 那样臃肿。看到这个答案。

这是您页面的更新部分,使用我另一个答案中的callPlayer函数而不是YouTube API:http://jsfiddle.net/ryyCZ/

<div id="player">
  <iframe width="560" height="315" frameborder="0" src="http://www.youtube.com/embed/bpOR_HuHRNs?enablejsapi=1"></iframe>
</div>
if ($(".slides_control > div:visible #player").length == 1) {
    callPlayer("player","playVideo");
} else {
    callPlayer("player", "pauseVideo");
}

相关内容

  • 没有找到相关文章

最新更新