2015-12-15 179 views
1

我在加载YouTube IFrame API时遇到问题。
我添加了标签,YouTube加载了他们的脚本,但是当我调用构造函数时,出现错误。YouTube IFrame API错误

player = YT.Player('vidPlayer', { 
    height: '390', 
    width: '640', 
    videoId: id, 
    playerVars: { 
     'rel': 0 
    }, 
    events: { 
     'onReady': playerReady, 
     'onStateChange': playerStateChange 
    } 
}); 

请纠正我,如果我在那里做任何错误。当我调用该构造函数时,会引发错误。这是控制台说:

Uncaught TypeError: a.G is not a function 
qb @ www-widgetapi.js:24 
P @ www-widgetapi.js:20 
X @ www-widgetapi.js:31 
onYouTubeIframeAPIReady @ script.js:55 
(anonymous function) @ www-widgetapi.js:39 
(anonymous function) @ www-widgetapi.js:39 

有没有人知道一种方法来解决这个问题?

+0

由于您尚未发布整个代码,请查看我的小型项目:https://github.com/alibozorgkhan/minidj/blob/master/static/js/minidj.js。也许它可以帮助你找出问题所在。 – AliBZ

+0

@AliBZ onYouTubeIframeAPIReady函数和添加player_api的脚本是代码中唯一的东西,所以你在这里看到的几乎是所有东西都减去标签脚本。 –

回答

0

我也有同样的问题。这对我有效。我使用YouTube iFrame API,然后创建对象。它适用于我。 在我们想要创建对象的文件中添加脚本。

<script src="https://www.youtube.com/iframe_api"></script> 

然后添加正在加载iFrame的div。

<div id="iframe"></div> 

现在的JavaScript通过YouTube API来加载的YouTube的iFrame

$(document).ready(function() { 
var player; 
    function onYouTubeIframeAPIReady() { 
    player = new YT.Player('iframe', { 
     height: '390', 
     width: '640', 
     videoId: 'M7lc1UVf-VE', 
     events: { 
     'onReady': onPlayerReady, 
     'onStateChange': onPlayerStateChange 
     } 
    }); 
    } 

function onPlayerReady() { 
    console.log('onPlayerReady'); 
    player.playVideo(); 
} 

function onPlayerStateChange() { 
    //your code after change the state 
} 

)};

onYouTubeIframeAPIReady()函数在加载时通​​过YouTube iframe API自动调用。