我正在使用Win / mac chrome& amp测试我的骨干应用程序firefox,iPad,iPhone,Android 4.3,Android 4.1.2和Android 2.3.7。 Youtube iFrame API使用本机浏览器在除Android 2.3.7之外的所有平台上正常运行。我已将其跟踪到YT.Player()返回的对象,从不触发其onReady事件或任何其他事件。
在所有测试中都会调用onYoutubeIframeAPIReady,并且正在实例化播放器,但有些东西阻止了“onReady”事件的触发。我在其他浏览器中看到过一些引用类似问题的帖子,但一般的回答只是这是一个“老bug”,应该已经解决了;但是,我在纯HTML页面上尝试了YT.Player的简单实现,并且它在2.3.7本机浏览器中工作,所以它似乎不是Youtube,浏览器或服务器问题。不确定这里会发生什么,因为代码在所有浏览器中都是相同的,并且正在处理其他所有事情。任何帮助将不胜感激!
代码:
_injectScript: function(){
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
},
render: function(runTimeSettings) {
var t=this;
Player.prototype.render.call(this, runTimeSettings);
window.onYouTubeIframeAPIReady = function() {
var player = new YT.Player('PlayerReal', {
events: {
'onStateChange': function(e) {
t.dispatchEvent(e);
},
'onReady': function(e) {
t.player = player;
t.domReady.resolve();
},
'onError':function(e) {
// nothing yet...
}
}
});
};
this._injectScript();
return this.el;
}