Utiliser l'API YouTube en AS3
1. Récupération de l'API
Pour pouvoir utiliser l'API dans votre application, il est nécessaire de faire une requete pour recuperer le swc sur le serveur de YouTube. Pour ce faire :
_loader = new Loader();
_loader.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit);
_loader.load(new URLRequest("http://www.youtube.com/apiplayer?version=3"));
2. Utilisation de l'API
Une fois que la librairie à été chargéé, nous pouvons la récuperer et ajouter les écouteurs sur les différentes actions :
private function onLoaderInit(event:Event):void {
addChild(_loader);
_loader.content.addEventListener("onReady", onPlayerReady);
_loader.content.addEventListener("onError", onPlayerError);
_loader.content.addEventListener("onStateChange", onPlayerStateChange);
_loader.content.addEventListener("onPlaybackQualityChange", onVideoPlaybackQualityChange);
}
Une fois que notre lecteur est prêt, nous pouvons charger et lancer la vidéo :
private function onPlayerReady(event:Event):void {
// Récupération de l'API youtube.
_player = _loader.content;
// On lance notre vidéo à partir de son identifiant
_player.loadVideoById(VIDEO_ID);
// On définie la taille de la vidéo
_player.setSize(480, 270);
}
Pour terminer, voici le code complet de l'exemple :
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.display.Loader;
import flash.net.URLRequest;
public class Main extends Sprite {
private var _loader : Loader;
private var _player : Object;
private static var VIDEO_ID : String = "D-wvgqDWjnk";
public function Main():void {
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
_loader = new Loader();
_loader.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit);
_loader.load(new URLRequest("http://www.youtube.com/apiplayer?version=3"));
}
private function onLoaderInit(event:Event):void {
addChild(_loader);
_loader.content.addEventListener("onReady", onPlayerReady);
_loader.content.addEventListener("onError", onPlayerError);
_loader.content.addEventListener("onStateChange", onPlayerStateChange);
_loader.content.addEventListener("onPlaybackQualityChange", onVideoPlaybackQualityChange);
}
private function onPlayerReady(event:Event):void {
_player = _loader.content;
_player.loadVideoById(VIDEO_ID);
_player.setSize(480, 270);
}
private function onPlayerError(event:Event):void
trace("player error:", Object(event).data);
}
private function onPlayerStateChange(event:Event):void {
trace("player state:", Object(event).data);
}
private function onVideoPlaybackQualityChange(event:Event):void {
trace("video quality:", Object(event).data);
}
}
}