YouTube AS3 API。这个简单的代码很久以前就被写了。一切都很好。 但前几天有些问题。 早(本月18日)全部工作正常。 使用AS3 API的Flash播放器。
public function Main()
{
super();
Security.allowInsecureDomain("*");
Security.allowDomain("*");
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.SHOW_ALL;
this._loader = new Loader();
this._loader.contentLoaderInfo.addEventListener(Event.INIT,this._onLoaderInit);
this._loader.addEventListener(IOErrorEvent.IO_ERROR,this.errorHandlerIOErrorEvent);
this._loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,this.errorHandlerIOErrorEvent);
this._loader.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR,this.onUncaughtError);
this.loadTime = new Date();
this._loader.load(new URLRequest("http://www.youtube.com/apiplayer?version=3");
}
private function _onLoaderInit(param1:Event) : void
{
this.player = this._loader.content;
this.player.addEventListener("onReady",this.onPlayerReady);
this.player.x = 0;
this.player.y = 0;
addChild(DisplayObject(this.player));
this._loader.contentLoaderInfo.removeEventListener(Event.INIT,this._onLoaderInit);
this._loader = null;
}
function onPlayerReady(param1:Event) : void // start from 18th this month , onReady dont fired
{
}
有人知道这个问题,或者如何修复它? Thx。
答案 0 :(得分:2)
@Ivan Korneev
这就是答案。 YouTube API for AS3(Flash)已弃用。我知道这是因为几天前它刚刚在我们的应用程序中出现了,幸运的是我们移动了HTML5。我建议你这样做。您可以在https://developers.google.com/youtube/iframe_api_reference
了解更多信息答案 1 :(得分:2)
请回答@All的回复。 我发现了一些有趣的事情。
apiplayer.api在DirectAccessAPI类中有函数
protected function forwardAPICall(param1:String, param2:Array)
{
var _loc_3:* = new APICallEvent(this.API_CALL, param1, param2);
this.loader.contentLoaderInfo.sharedEvents.dispatchEvent(_loc_3);
return _loc_3.returnValue;
}// end function
但是API_CALL常量是APICallEvent的成员, 我只是像这样修理它
var _loc_3:* = new APICallEvent(APICallEvent.API_CALL, param1, param2);
一切都好,但现在我需要从本地存储加载apiplayer,而不是从youtube加载。
答案 2 :(得分:2)
我遇到了同样的问题。我使用此API在基于Flash的游戏中显示Youtube视频(无格式播放器)。所以,遗憾的是我无法切换到HTML5播放器,因为它不能在Flash内部工作。由于我坚持使用基于Flash的Youtube API,我试图像OP一样解决这个问题。
经过一番调查,我发现: - API的主机地址已于2月18日左右移动。 (现在在googleapis.com域而不是youtube.com上) - 此域移动后,API无法从Youtube正确加载。如文档中所述,当您加载API时,它应该触发" onReady"事件。目前,这从未发生过。 - 在播放器上调用doc(loadVideo(),stopVideo()等)中描述的任何方法现在将导致"方法X()不存在"错误。所以它不只是" onReady"事件没有触发,但API无法加载自身 - 进一步证明Youtube端的Flash Player API出现问题,就是在浏览器中打开无色播放器URL不再显示" Youtube"徽标,就像以前一样。 - 我的建议是,当他们将API从域移动到另一个域时,他们忘记重写一些内部URL,现在它不能再加载所有依赖项或类似的东西。
不幸的是,这并没有解决问题,只是改进它的位置。
我认为唯一的方法是与Youtube取得联系,以便他们能够修复"他们当前的API有什么问题。除非他们自愿禁用它(这会很难过,因为HTML5不能涵盖AS3播放器的所有用途)。
答案 3 :(得分:1)
尝试使用https
作为Youtube路径。 例如: .load(new URLRequest("https://www.youtube.com/api...etc
而不是http://www.youtube.com/apiplayer?version=3
尝试:https://youtube.googleapis.com/apiplayer?version=3
答案 4 :(得分:1)