Adobe AIR 1.5 LocalConnection with swf in Browser
März 9th, 2010
Yesterday i tried to implement the basic functions for a framework debugger tool. When i opened the SWF’s in Firefox or via the standalone Flash Player the local connection was working.
Between the AIR application launched by Flex and the swf in the Browser the local connection was not working.
Why is explained here: http://help.adobe.com/en_US/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7c7e.html
If the string for connectionName does not begin with an underscore, the runtime adds a prefix with the superdomain name and a colon (for example, myDomain:connectionName). Although this ensures that your connection does not conflict with connections of the same name from other domains, any sending LocalConnection objects must specify this superdomain (for example, myDomain:connectionName). If you move the HTML or SWF file with the receiving LocalConnection object to another domain, the runtime changes the prefix to reflect the new superdomain (for example, anotherDomain:connectionName). All sending LocalConnection objects have to be manually edited to point to the new superdomain.
Solution: When you want to build a tool which communicates with swfs in browser use a underscore (“_”) as prefix for the connection names.
FLVPlayback complete error
März 2nd, 2010
Last week my FLVPlayback Component thought that is has finished the playback of the video in the first third of the Video.
I tried many ways, even reencoding the Video until i found a litte line of code which solved the Problem.
The property “playheadUpdateInterval” of the flvPlayback was set to 10 milliseconds.
I do not know what exactly happens inside the flvplayback compontent but this short update interval is responsible for the early video complete error
FLVPlayback with Kewego URL’s
Februar 11th, 2010
Today i tried to use the FLVPlayback Component with the Kewego API. The connect fails because FLVPlayback will try to connect with the SMILManager to the video url generated by the Kewego API.
There is a easy way to solve this Problem: Write your own net connection manager.
package
{
import fl.video.INCManager;
import fl.video.NCManager;
import fl.video.ParseResults;
import fl.video.SMILManager;
import fl.video.VideoError;
import fl.video.flvplayback_internal;
use namespace flvplayback_internal;
public class KewegoNCManager extends NCManager implements INCManager
{
override public function connectToURL(url : String) : Boolean
{
//ifdef DEBUG
//debugTrace("connectToURL(" + url + ")");
//endif
// init
initOtherInfo();
_contentPath = url;
if (_contentPath == null || _contentPath == "")
{
throw new VideoError(VideoError.INVALID_SOURCE);
}
// parse URL to determine what to do with it
var parseResults : ParseResults = parseURL(_contentPath);
if (parseResults.streamName == null || parseResults.streamName == "")
{
throw new VideoError(VideoError.INVALID_SOURCE, url);
}
// connect to either rtmp or http or download and parse smil
var canReuse : Boolean;
if (parseResults.isRTMP)
{
LogManager.info(this, "\t connectToURL is RTMP");
canReuse = canReuseOldConnection(parseResults);
_isRTMP = true;
_protocol = parseResults.protocol;
_streamName = parseResults.streamName;
_serverName = parseResults.serverName;
_wrappedURL = parseResults.wrappedURL;
_portNumber = parseResults.portNumber;
_appName = parseResults.appName;
if ( _appName == null || _appName == "" || _streamName == null || _streamName == "" )
{
throw new VideoError(VideoError.INVALID_SOURCE, url);
}
_autoSenseBW = (_streamName.indexOf(",") >= 0);
return (canReuse || connectRTMP());
}
else
{
var name : String = parseResults.streamName;
if (name.indexOf("kewego") > 0 && name.indexOf("flv?key") > 0)
{
canReuse = canReuseOldConnection(parseResults);
_isRTMP = false;
_streamName = name;
return (canReuse || connectHTTP())
}
if ( name.indexOf("?") < 0 && (name.length < 4
|| name.slice(-4).toLowerCase() != ".txt") &&
(name.length < 4 || name.slice(-4).toLowerCase() != ".xml") &&
(name.length < 5 || name.slice(-5).toLowerCase() != ".smil") )
{
canReuse = canReuseOldConnection(parseResults);
_isRTMP = false;
_streamName = name;
return (canReuse || connectHTTP());
}
if (name.indexOf("/fms/fpad") >= 0)
{
try
{
return connectFPAD(name);
} catch (err : Error)
{
}
}
_smilMgr = new SMILManager(this);
return _smilMgr.connectXML(name);
}
}
}
}
Then you have to assign the Connection Manager to the VideoPlayer:
VideoPlayer.iNCManagerClass = KewegoNCManager;
That’s it.
thefwa.com -> volkswagen2028.com site of the day
August 8th, 2008
unglaublich, aber wahr, mein baby die futuresite (aka volkswagen 2028.com) hat es heute beim thefwa.com (the favorite website awards) zur Site of the Day geschafft.

Mal schauen, vielleicht schafft Sie es ja auch zur Site of the Month! Das wäre dann nach dem Audi R8 Webspecial die zweite Seite an der ich mitgewirkt habe.
AMFPHP times out (gzip)
Juli 20th, 2008
Vor kurzem musste ich feststellen, dass das Remoting zu AMFPHP auf verschiedenen Seiten des gleichen Servers nicht mehr richtig funktioniert. Das Problem war, dass AMFPHP zwar ein Ergebnis zurücklieferte, aber der Browser nicht mitbekommen hat, dass das Ergebnis vollständig geladen hat (gesendete Daten != Content-length). Das äußerte sich darin, dass der Browser dann bis zum Timeout wartet, in diesem Falle 15 Sekunden.
Das gleiche Phänomen taucht aber auch bei Gallery2 bildern auf wenn diese über die Main.php Schnittstelle geladen werden. Das Bild ist schon vollständig da, der Browser wartet aber immer noch auf Daten, die er nie bekommen wird. Hier habe ich aber noch keine Lösung gefunden. Sobald sich hier etwas ergibt, gebe ich Bescheid.
Ursache: Ich gehe davon aus, dass auf unserem Webserver was geändert wurde, was unmittelbar mit gzip zusammenhängt. Hier kann ich aber keine genaue Aussage treffen, da warte ich noch auf die Rückmeldung von meinem Serveradmin (gelle Björn ;D)
Lösung für AMFPHP (1.9):
core/amf/app/Gateway.php -> (ca. Zeile 230)
[....]
$outputCompression = @ini_get(“zlib.output_compression”);
$outputCompression = true; // diese Zeile einfügen! und es funktioniert wieder – jedenfalls bei mir
if(!$outputCompression)
[....]
Nachdem ich mich nun einige Stunden mit dem Problem beschäftigt habe, dass sowohl der Nutzungsbericht, als auch der Leistungsbericht nicht angezeigt wird habe ich endlich eine Lösung gefunden.
Problem: Wenn man in der MMC den Nutzungsbericht aufruft kommt “Seite nicht gefunden”.
Ursache: Der IIS hört nicht auf die IP Adresse 127.0.0.1 / Localhost. Wenn man die IP im IIS einträgt startet die Standardwebseite nicht mehr.
Fehler: Cannot register the URL prefix ‘SITENAME:80:IP/[...]‘ for site ‘…’. The IP address for the site is not in the HTTP.sys IP listen list. The site has been deactivated.
bzw.
Der URL-Präfix “http://127.0.0.1:80/_vti_bin/” für Site “1″ konnte nicht registriert werden. Die IP-Adresse für die Site ist nicht in der IP-Abhörliste von HTTP.sys aufgeführt. Die Site wurde deaktiviert. Das Datenfeld enthält die Fehlernummer.
Woran liegt das: “Ganz einfach”. Irgendwann hat man mal mit dem Tool HTTPCFG eingestellt, dass der HTTP Dienst nur auf bestimmte IPs hören soll.
Lösung: Alle IPLISTEN Konfigurationen entfernen
Kommandozeile:
net stop http /y
httpcfg query iplisten
alle gelisteten IPs mit: “httpcfg delete iplisten -i IP” entfernen, server mit: “net start w3svc” neu starten und siehe da: Die Nutzungsberichte und Leistungsberichte werden wieder in der MMC angezeigt. *YEHAAAA*
Volkswagen2028.com aka Futuresite
Juli 4th, 2008

Bereits letzte Woche am 26.06.2008 um 18:30 erblickte die deutschsprachige Volkswagen 2028 Webseite (Arbeitstitel “Futuresite”) das Licht des Internets.
Seit heute um ca. 15:30 ist endlich die englische Version auf der Volkswagen2028.com live geschaltet.
Auf dem Webspecial Volkswagen2028.com zeigt der Wolfsburger Autobauer eindrucksvoll wie er sich die automobile Zukunft vorstellt. Durch einen Hauptfilm geleitet, findet der Besucher im Infobereich der Seite Interviews und Informationen zu Themen wie z.B. “Emissionsfreies Fahren” und “vernetzte Mobilität”. Es steht jedem Benutzer außerdem frei zu einem der vier vorgestellten Concept-Cars (obwohl der up! ja eigentlich keins mehr ist) ein Kommentar zu schreiben. Nach der Validierung der E-Mailadresse durch den Kommentierenden wird der Kommentar freigeschaltet sofern er den Anforderungen entspricht. Ich habe bereits in einigen Blogs gelesen, dass dies anscheinend zu Verwirrung geführt hat, weil der Kommentar nicht sofort angezeigt werden wird. Wie überall muss sowas natürlich noch geprüft werden
Jetzt mag sich der Gelegenheitsbenutzer dieser Seite wahrscheinlich wundern warum ich sowas weiß: Ganz einfach, es ist unter anderem mein Baby. Seit ungefähr Ende September 2008 habe ich an dieser Webseite mitgearbeitet. Zuerst als Teammitglied, die letzten Monate als “Lead-Programmer” und in den letzten Tagen sogar als “Master-Chief of Livestelling”
Meine Aufgaben waren u.A.
- Technische Projektleitung
- Technische Konzeption
- Umsetzung & Bugfixing
Besonderer Dank gilt an dieser Stelle meinem (Ex)-Kollegen Pascal Knoske (agency-victims.de) mit dem ich eine ganze Zeit an diesem Projekt arbeiten durfte und natürlich dem ganzen Team der argonauten (www.argonauteng2.de)
So, und jetzt ERLEBEN: www.volkswagen2028.com




The Metal Muppets
Mai 6th, 2008
Wer nicht weiß was Metal ist und wie man es hören sollte: Hier das ultimative Lehrvideo
Dove Chicken
April 30th, 2008
Viele kennen wahrscheinlich schon die Dove Werbung in der im Zeitraffer eine Frau zum Supermodell geschminkt und retouchiert wird. Den Clip hat Fosters Chicken auf geniale Art und Weise kopiert:
Und wer das Original nicht kennt:
Zum Tag des Bieres
April 23rd, 2008
Das beste Bier wo gibt. Flensburger!