-
<?xml version="1.0" encoding="utf-8"?>
-
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
-
xmlns:s="library://ns.adobe.com/flex/spark"
-
xmlns:mx="library://ns.adobe.com/flex/halo"
-
creationComplete="init()" width="500" height="500">
-
<fx:Script>
-
<![CDATA[
-
import flash.display.Loader;
-
import flash.events.*;
-
import mx.controls.Alert;
-
-
private var player:Object;
-
private var loader:Loader;
-
-
[Bindable]
-
private var controlsEnabled:Boolean = false;
-
-
/*
-
* Beim Start der Applikation YT-Player laden
-
*/
-
private function init():void {
-
-
// neuen Loader
-
loader = new Loader();
-
-
// Event Listener für Loader
-
loader.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit);
-
-
// YouTube Player laden
-
loader.load(new URLRequest("http://www.youtube.com/apiplayer?version=3"));
-
}
-
-
private function onLoaderInit(event:Event):void {
-
-
// Video Container zur Bühne hinzufügen
-
vidContainer.addChild(loader);
-
-
// Event Listener hinzufügen
-
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 {
-
-
debugTxt.text += "Player ready: " + Object(event).data + "\r";
-
player = loader.content;
-
-
// Groesse des Player festlegen
-
player.setSize(vidContainer.width, vidContainer.height);
-
-
// Video inkl. Vorschaubild laden
-
player.cueVideoById("V_MmgpGWqpA");
-
}
-
-
private function onPlayerError(event:Event):void {
-
debugTxt.text += "Fehler:" + Object(event).data + "\r";
-
}
-
-
private function onPlayerStateChange(event:Event):void {
-
debugTxt.text += "Player State gewechselt: " + Object(event).data + "\r";
-
-
// sobald der Player abspielt, die untere Buttonleiste einblenden
-
if ( Object(event).data == 1 ) {
-
controlsEnabled = true;
-
}
-
-
}
-
-
private function onVideoPlaybackQualityChange(event:Event):void {
-
// small, medium, large oder hd720
-
debugTxt.text += "Video Qualität: " + Object(event).data + "\r";
-
-
}
-
-
]]>
-
</fx:Script>
-
-
-
<s:layout>
-
<s:VerticalLayout />
-
</s:layout>
-
-
-
<mx:UIComponent id="vidContainer" width="480" height="360" />
-
-
<s:HGroup>
-
<s:Button label="Play" click="player.playVideo()" />
-
<s:Button label="Pause" click="player.pauseVideo()" />
-
<s:Button label="Mute" click="player.mute()" />
-
<s:Button label="Unmute" click="player.unMute()" />
-
</s:HGroup>
-
-
<mx:Spacer height="50" />
-
-
<s:HGroup>
-
<s:Button label="Show Video Duration" click="Alert.show (player.getDuration() )" enabled="{controlsEnabled}" />
-
<s:Button label="Show Video URL" click="Alert.show (player.getVideoUrl() )" enabled="{controlsEnabled}" />
-
<s:Button label="Show Embed" click="Alert.show (player.getVideoEmbedCode() )" enabled="{controlsEnabled}" />
-
<s:Button label="Show playback quality" click="Alert.show (player.getPlaybackQuality() )" enabled="{controlsEnabled}" />
-
</s:HGroup>
-
-
<s:TextArea width="200" height="100" id="debugTxt"/>
-
</s:Application>
6 Kommentare zum Beitrag "YouTube API: Chromeless Player für ActionScript 3"
na Zeit wird es!!! Super Sache!
super! eine Frage: Gibt es den Chromed Youtube Player auch in AS3?
Nein, den Chromed Player gibt's noch nicht für AS3. Ich vermute, dass es den erst gibt, wenn auch der normale Player auf der Webseite von YouTube in AS3 ausgeliefert wird.
[...] 3 API for their Chromeless Player. I looked at some availabe code snippets on different blogs and unfortunateley, I had to realize that the API is not really object-oriented and a little bit [...]
Hi Flo,
dank dir für die Codesnippets :-) Finde die API ein bissl eklig zu benutzen, so ohne mögliche Code-Completion und wirkliche Klassen. Habe mich deshalb mal daran gemacht ein bissl OOP Struktur in diese API einzuführen. Herausgekommen sind 3 Klassen und Komponenten für Flash, Flex und Air.
http://blog.derhess.de/2009/10/27/the-new-youtube-as3-chromeless-api-in-flex-air-flash/
Vielleicht kann es ja der ein oder andere gebrauchen?! Im gebrochen English habe ich das Ganze auch dokumentiert.
Grüße nach Offenburg
von auch einem Flo ;-)
Danke für die Ergänzung. Hilfreiche Sache!
Schreibe einen Kommentar