Hallo allerseits,
ich nutze den Flashplayer von longtail-video (Jeroen Wijering) auf meinen Server (sub)domainübergreifend. Nun bin ich durch Zufall darauf gestoßen, dass die Sicherheitseinstellungen von Flash selbst auf einer Domain mit getrennten Subdomains Alarm schlagen und das Video nicht abspielbar ist.
Die Lösung schien zunächst nur eine crossdomain.xml zu sein, die im Webroot der Domain liegen muss, wo das Video liegt (allein das war schon ein Akt...)
Nun gibt der Player mehrere Fehler zurück, die eigentlich inzwischen nicht mehr auftauchen dürften, jedoch unterschiedlicher Natur, wenn die crossdomain.xml unterschiedlichen Inhalt enthält - trotzdem bisher irgendwie nicht logisch (subjektiv betrachtet).
Version des Players ist übrigens, die Aktuelleste, 5.1
die HTML- / PHP-Datei, liegt auf http://(www.)domain.xy/video.php
<div id="videobox" class="video"><a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see this player.</div>
<script type="text/javascript">
var s1 = new SWFObject("http://data.domain.xy/flash/mediaplayer.swf","mediaplayer","360","308","7");
s1.addParam("allowfullscreen","true");
s1.addVariable("width","360");
s1.addVariable("height","308");
s1.addVariable("file", "/videos/afraid.wmv");
s1.addVariable("showdigits","true");
s1.addVariable("showstop","true");
s1.addVariable("backcolor","0x999999");
s1.addVariable("frontcolor","0xCCCCCC");
s1.write("videobox");
</script>
crossdomain.xml, Version 1 (oder auch gar nicht vorhanden - selbes Ergebnis)
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="http://domain.xy" />
<allow-access-from domain="http://www.domain.xy" />
</cross-domain-policy>
oder
crossdomain.xml, Version 2
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="domain.xy" />
<allow-access-from domain="www.domain.xy" />
</cross-domain-policy>
führt zu folgendem Problem:
Error #2044: error unverarbeitet. text=Task Queue failed at step 6: Playlist could not be loaded: Error #2048: Verletzung der Sicherheits-Sandbox: http://data.domain.xy/flash/mediaplayer.swf kann keine Daten von /videos/afraid.wmv laden.
// Das Video ist dort defintiv vorhanden und die crossdomain.xml enthält auch die Domain, allerdings kommt auch dergleich Fehler, wenn die crossdomain.xml nicht vorhanden ist.
crossdomain.xml, Version 3
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*.domain.xy" />
</cross-domain-policy>
führt zu folgendem Problem:
TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
at com.longtailvideo.jwplayer.parsers::ParserFactory$/getParser()
at com.longtailvideo.jwplayer.model::Playlist/playlistLoaded()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at com.longtailvideo.jwplayer.utils::AssetLoader/urlLoadComplete()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
Das gleiche Problem tritt auch auf, wenn ich die mediaplayer.swf direkt auf die Domain lege und somit das cross-Domain-Problem gar nicht da ist.
Das würde zwar dafür sprechen, dass die xml-Datei mit
<allow-access-from domain="*.domain.xy" />
am "richtigsten" ist (warum auch immer die anderen Versionen nicht funktionieren). Jedoch liest sich der Fehlertext für mich so, als würde er versuchen die crossdomain.xml als Playlist anzusehen...?
Habe ich den Aufbau des Problems nicht verstanden? Kennt jemand eine Eigenheit des Players, die zu den Problemen führt? Oder hat jemand eine Idee, wie das Problem behoben werden kann?
Gruß Patrick