2017-02-22 4 views
1

YouTube AS3 API. Dieser einfache Code wurde vor langer Zeit geschrieben. und alles war in Ordnung. Aber vor ein paar Tagen einige Probleme. Früh (bis zum 18. dieses Monats) funktioniert alles OK. Flash Player mit AS3 API.YouTube AS3 API (onReady funktioniert nicht mehr?)

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 
{ 

} 

ist jemand weiß dieses Problem, oder wie es zu beheben? Thx.

+0

Wurde das nicht schon vor langer Zeit abgeschrieben? – quantomworks

+0

Vielen Dank für Ihre Antwort. –

+1

Jetzt habe ich ein Problem gefunden. –

Antwort

2

@Ivan Korneev

Dies ist die Antwort. Die YouTube-API für AS3 (Flash) wurde abgeschrieben. Ich weiß das, weil es vor ein paar Tagen in unserer Anwendung gelandet ist, glücklicherweise sind wir über das HTML5 gegangen. Ich schlage vor, Sie tun das Gleiche. Sie können https://developers.google.com/youtube/iframe_api_reference

1
  • Versuchen https für Youtube Weg mehr hier erfahren. ZB:.load(new URLRequest("https://www.youtube.com/api...etc

  • Statt http://www.youtube.com/apiplayer?version=3
    Versuch: https://youtube.googleapis.com/apiplayer?version=3

2

Thx für Antworten auf @all. Ich habe etwas Interessantes gefunden.

apiplayer.api haben Funktion in der Klasse 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 

aber API_CALL konstant ist Mitglied APICallEvent, ich es einfach beheben wie diese

var _loc_3:* = new APICallEvent(APICallEvent.API_CALL, param1, param2); 

und alles in Ordnung, aber jetzt i Last brauchen apiplayer aus dem lokalen Speicher, nicht von youtube.

+0

Dies kann vorübergehend funktionieren, aber bald wird dies auch nicht funktionieren. Die wirkliche Antwort ist, dass AS3 nicht mehr von YouTube unterstützt wird. https://developers.google.com/youtube/flash_api_reference –

1
+0

mit diesem wie würde ich streamen, anstatt zuerst die gesamte Datei herunterzuladen? und wie würde ich hochladen? – quantomworks

+0

können Sie flash.media.Video-Klasse verwenden, um Video abzuspielen, nein, Sie können nicht hochladen. –

+0

würde ich nur das Ziel des Netstreams die URL des Videos machen und dann die ns an das Video anhängen? – quantomworks

2

ich das gleiche Problem gestoßen sind. Ich nutze diese API, um ein Youtube-Video (Chromeless Player) in einem Flash-basierten Spiel anzuzeigen. Leider kann ich nicht zum HTML5-Player wechseln, da dieser in Flash nicht funktioniert. Da ich mit der Flash-basierten Youtube-API festgefahren bin, habe ich versucht, dieses Problem wie OP zu lösen.

Nach einigen Untersuchungen habe ich gefunden: - Die Host-Adresse der API wurden um den 18. Februar verschoben. (jetzt auf der Domain googleapis.com statt auf youtube.com) - Nach dieser Domainverschiebung kann die API nicht korrekt von Youtube geladen werden. Wie im Dokument beschrieben, sollte beim Laden der API ein "onReady" -Ereignis ausgelöst werden. Momentan passiert das nie. - Der Aufruf einer Methode, die im Dokument beschrieben wird (loadVideo(), stopVideo(), usw.), führt nun zu einem Fehler "Methode X() existiert nicht". Es ist also nicht nur das "onReady" -Ereignis, das nicht ausgelöst wird, sondern dass sich die API selbst nicht laden kann. - Ein weiterer Beweis dafür, dass mit der Flash Player API auf Youtube-Seite etwas nicht stimmt, ist das Öffnen der URL des chlomatischen Spielers in einem Browser länger ein "Youtube" -Logo, so wie es einmal war. - Mein Vorschlag wäre, dass sie vergessen haben, eine innere URL neu zu schreiben, als sie die API von einer Domain in eine andere verschoben haben und jetzt nicht mehr alle Abhängigkeiten oder ähnliches laden kann.

Leider löst dies nicht das Problem, nur verfeinern, wo es ist.

Ich denke, der einzige Weg wäre, mit Youtube in Kontakt zu kommen, damit sie "reparieren", was mit ihrer aktuellen API falsch ist. Es sei denn, sie haben es freiwillig deaktiviert (was traurig wäre, da HTML5 nicht alle Nutzungen des AS3-Players abdecken kann).

Verwandte Themen