YouTube Chromless API VS. Flashplayer 10,0,2

Nach der ersten Begeisterung folgt die große Ernüchterung. Nach diversen kleinen und erfolgreichen Tests wollte ich mit der „Youtube Chromless API“ einen kleinen Schritt weiter gehen. Zeitgleich mit der Youtube API hab ich mir die neue Away 3D Engine für den Flash Player 10 angeschaut, die dank Pixelbender mächtig mehr Speed unter der Haube hat als die aktuelle Version der Papervision Engine. Die Idee war das Youtube Video in ein BitmapData zu zeichnen um dieses als Texture für eine Sphere zu benutzen… Und genau hier bin ich das erste mal auf das Problem, oder besser gesagt, die für mich bisher unbekannte Fehlermeldung gestoßen: „Fehler: http://xyz konnte nicht geladen werden, da als Content-Disposition "attachment" festgelegt war.“
Mit dieser Fehlermeldung konnte ich zunächst gar nichts anfangen und zudem kam noch das Problem hinzu, dass ich den nahezu identischen Code aus der „YouTube Flash Player API Reference“ bereits erfolgreich getestet hatte. Allerdings hatte ich zu Begin aus Bequemlichkeit in der Flash CS3 IDE für den Flash Player 9 gescriptet. Bei „größeren“ Projekten hingegen schreib ich meinen Code am liebsten mit FlashDevelop und kompiliere ihn über die Flex SDK (Ver.: 3.4) entweder für v9 oder v10.
Und genau hier entsteht das Problem. Sobald man für den Flash Player 10 entwickelt wird man spätestens ab Player Version 10,0,2 mit den geänderten Sicherheitseinstellungen konfrontiert. Manch ein HTTP Server sendet einen so genannten „response header“, der wie folgt aussehen kann: „Content-Disposition: attachment“. Das verhindert, dass das zu ladende File abgespielt, bzw. korrekt eingeladen werden kann. Und genau diesen Header scheint der Youtube Server auch zu senden, denn die Youtube API ist nicht mehr in der Lage irgentwelche Videos zu laden. Der Player (+Logo) ist zu sehen und die Methoden kann man auch ansprechen, aber das Laden ist wie gesagt unmöglich.
Der onPlayerError Handler gibt mir zudem die Fehlermeldung „player error: 0“ aus. Laut Referenz sollte es aber nur diese Fehlermeldungen geben: „The possible error codes are 100, 101, and 150.“
Das ganze funktioniert also nur für den Flash Player 9, nicht aber für den 10er Player wegen der geänderten Sicherheitseinstellungen. Das ganze gibts hier schwarz auf weiß!

Bitte korrigiert mich falls ich daneben liegen sollte.

YouTube Chromless API Developers Interview

Hier noch ein kleines Interview mit einigen Entwicklern von Youtube/Google über die YouTube Chromless API. Dabei ist auch Geoff Stearns, der Flash Engineer vom Youtube Player.


YouTube Chromless API in Aktion

Endlich ist es möglich ohne größere Umwege Youtube Videos in sein AS3 Projekt zu laden. Auf Google Code gibt es seid kurzem die „YouTube Chromless API“ die dies ermöglicht. Dank der ausführlichen Referenz und 2 kleinen, aber ausreichenden Beispielen fällt der Einstieg sehr einfach.
Ich hab zum testen direkt ein kleines Beispiel gebaut mit einer minimalen Videosteuerung. So kann man das Video abspielen/pausieren lassen und auf lautlos stellen. Natürlich wären alle vom Youtube Player bekannten Steuerelemente möglich, wie sich in der Referenz nachlesen lässt, aber für dieses kleine Beispiel muss das Vorhandene reichen.

Zum testen hab ich noch die Möglichkeit Youtube Videos zu laden mit eingebaut. Man kann das Video entweder über die Video ID, oder die Video URL in den Player laden.



Um ein anderes Video in den Player zu laden müsst Ihr also einfach entweder wie im Bild zu sehen die Video URL kopieren, oder die rot makierte Video ID nehmen und diese unterhalb des Fernsehers in die entsprechende Textbox einfügen und auf LOAD klicken.

Wer mit dem Beispiel aus der Referenz nicht klar kommt und Security Fehler wie
Sandbox-Verletzung“ usw. erhält, der sollte folgende zeile code mit in sein Projekt einfügen:
flash.system.Security.allowDomain( "http://www.youtube.com" );

Footprints in the sand

Bei der Entwicklung eines kleinen Spiels gab es die Grundidee, dass der Spieler eine Linie zu einem bestimmten Ziel zeichnen muss. Hat der Spieler sein Ziel erreicht folgen der gezeichneten Linie Fußabdrücke und das Level ist beendet.
Genau diesen Part aus der Engine für das Spiel hab ich jetzt dazu benutzt, um mit der Maus Linien in den Sand zu malen und im Anschluss von Fußabdrücken nachgehen zu lassen.
Sieht ganz lustig aus wie ich finde. Zeichnet einfach bei gedrückter Maustaste in den Sand rein. Lasst Ihr die Maustaste los wird die von Euch gezeichnete Strecke abgegangen.

drawSketchedLine

Eine kleine Spielerei die sicher für den einen oder anderen interessant sein könnte.
Mit den Zeichenmethoden (movoTo und lineTo) der Graphics Klasse kann man nur durchgehende und gleichmäßige Linien zeichnen. Im Netz gibt’s schon sehr viele Lösungen um gestrichelte bzw. gepunktete Linien zu erstellen, aber ich konnte im Web nichts finden um „gemalte“, oder anders gesagt nicht ganz korrekt gezeichnete Linien zu erstellen.
Im Flashforum kam jetzt genau die Frage nach einer solchen Methode/Funktion auf. Die kleine Funktion war schnell geschrieben und kann natürlich auch sehr einfach in eine Methode umgeschrieben werden. Den Actionscript Code und ein paar erklärende Worte zum zeichnen der „sketched lines“ gibt’s hier.
In dem Beispiel unten könnt Ihr einfach mit der Maus wild rumklicken um Linien zu zeichnen. Unten könnt Ihr diverse Parameter verstellen und somit das Aussehen der Linien beeinflussen.

drawSketchedLine


Quick As A Flash

Grant Skinner hat auf der FOTB09 einen Vortrag gehalten wie man seinen Code optimieren kann um mehr Geschwindigkeit zu erreichen. Die „presentation slides“ von Quick As A Flash“ sind jetzt online und wirklich für jeden empfehlenswert zu lesen der mehr aus seinen Anwendungen rauskitzeln möchte.
(Gesteuert wird die Präsentation einfach mit den Pfeiltasten)

iPhone Applikationen mit Flash CS5 entwickeln

Lange mussten wir Flasher warten, aber jetzt endlich kommt mit dem neuen Flash CS5 die Möglichkeit Applikationen für das iPhone zu entwickeln! Hierbei muss aber erwähnt werden, dass man ausschließlich App’s entwickeln kann.
Das iPhone selbst hat weiterhin keinen eigenen Flashplayer und kann entsprechende Webinhalte wie gehabt NICHT darstellen.
Die mit Flash erstellten App’s werden als native iPhone Applikationen exportiert. Für den iPhone User hat das den Vorteil, dass sich diese App’s gegenüber den bisherigen nicht unterscheiden. Alles bleibt wie gehabt und somit entstehen keine zusätzlichen Hürden beim herunterladen bzw. installieren, was für den Vertrieb sicher sehr förderlich sein dürfte. Es gibt sogar schon erste diverse Flash App’s im offiziellen App Store zu kaufen. Weitere Infos zu dem Thema gibt’s hier im Video2Brain Blog oder im folgenden Videoausschnitt von der Adobe MAX 2009.