flash und files auf dem http-server?

DasBossInDaHaus

Vice Admiral Special
Mitglied seit
30.07.2007
Beiträge
916
Renomée
7
Standort
zuhause ;-)
Hi,
ich hab mir nen kleinen kleinen mp3-player aus flash gebaut und der tut jetzt nicht was er soll.
Die playlist zieht er sich aus ner xml, die ungefähr so aussieht:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<songs>
	<song url="Goresh.mp3" />
	<song url="ordner/frei.mp3" />
	<song url="Boulevard.mp3" />
</songs>

und das funktioniert auch, wie s soll.

ABER

wenn ich jetzt eine zeile wie

Code:
<song url="http://192.168.2.111/iTunes/iTunes Music/Podcasts/Bits und so/164 Bits und so #164 (Gerockt).mp3" />
oder alternativ
Code:
<song url="http://192.168.2.111/iTunes/iTunes%20Music/Podcasts/Bits%20und%20so/164%20Bits%20und%20so%20%23164%20%28Gerockt%29.mp3" />

da rein setzte spielt er s einfach nicht :(
er wirft keinen fehler, aber er spielts einfach nicht :(
wie mache ich dem flash mp3s schmackhaft, die auf einem http-server liegen?

EDIT: hab gerade versucht die projektdatei anzuhängen. leider ohne erfolg.
 
Zuletzt bearbeitet:
Schonmal probiert ob er das übers Netz ziehen kann. Also als ein netzlaufwerk einbinden.

Ich hab keine Ahnung wie du dein MP3 Player programmiert hast, aber er sollte denke ich dann mit IP-Paketen arbeiten können. Diese müssen ja dann wieder zu einer Datei zusammengefügt werden.

Aber wie gesagt, ich hab kein Plan wie dein MP3-Player aufgebaut ist. Ich hoffe ich konnte dir damit einen Hinweis geben.
 
ich hab die url einfach mal in die browserleiste geschrieben, und opera hat mir direkt angeboten die datei zu downloaden, also die url ist okay, und der server richtig konfiguriert.

...ich hab wenig lust auf rapidshare, gibts noch n anderen halbwegs empfehlenswerten hoster, bei dem ich mit wenig aufwand das flashprojekt schnell hochladen kann?
 
Dein MP3 Player hat Opera?
Du musst einfach bedenken, das dein MP3 Player auch mit den Protokollen klar kommt.
Denn wenn er die .mp3 Dateien auf n Speicher erkennt heißt das noch lange nicht, dass er auch Internetprotokolle versteht.
 
eR1K1 schrieb:
Dein MP3 Player hat Opera?
Ähm, ich glaube, Du bist gerade auf dem falschen Dampfer. Hier geht es nicht um einen Hardware-MP3-Player à la iPod o.ä., sondern einen Softwareplayer in Flash, eingebaut in eine Webseite. D.h. nicht Opera läuft auf dem Player, sondern der Player läuft in Opera ;)


Also ich würde mal die Zugriffsrechte checken. Wenn Du selbst die Adresse eingibt, ist das ggf. ein anderer Benutzer als der Webserver, der die Flash-Seite ausführt.

Oder es liegt an der Verarbeitung der Adresse, sind immerhin eine Menge Sonderzeichen drin. Leg doch einfach mal testweise eine "test.mp3" direkt in den Root des Servers.
 
Ähm, ich glaube, Du bist gerade auf dem falschen Dampfer. Hier geht es nicht um einen Hardware-MP3-Player à la iPod o.ä., sondern einen Softwareplayer in Flash, eingebaut in eine Webseite. D.h. nicht Opera läuft auf dem Player, sondern der Player läuft in Opera ;)

Okay das würde einiges erklären :D.
War der Annahme er meinte mit Flash den Speicher.
Gibts da unter Flash vllt andere Befehle zum streamen?
Der Player muss sich ja zuerst mit dem Webserver auseinandersetzen bevor der Webserver dann die Datei bereitstellt.
Nen Beispielcode wäre hier nicht schlecht, wie der TE das ganze gebastelt hat.
 
Code:
//setup sound object
var s:Sound = new Sound();
s.onSoundComplete = playSong;
s.setVolume(75);

//Arrey of songs
var sa:Array = new Array();

//Currently playing song

var cps:Number = -1;

//position of music

var pos:Number;

//Load the songs XML
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function() {
	var nodes:Array = this.firstChild.childNodes;
	for (var i = 0; i<nodes.length; i++) {
		sa.push(nodes[i].attributes.url);
	}
	playSong();
};

xml.load("http://192.168.2.111/index.php?p=iTunes/iTunes Music/Podcasts");

//xml.load("songs.xml");

//play the mp3file

function playSong():Void {
	s = new Sound();
	if (cps == sa.length-1) {
		cps = 0; 
		s.loadSound(sa[cps],true);
	} else {
		s.loadSound(sa[++cps],true);
	}
	playPause.gotoAndStop("pause");
}

//pauses the music
function pauseIt():Void
{
	pos = s.position
	s.stop();
}

//unpauses the music
function unPauseIt():Void
{
	s.start(pos/1000)
}

//Music controls

//Play/Pause Toggle

playPause.onRollOver = function()
{
	if(this._currentframe == 1) this.gotoAndStop("pauseOver");
	else this.gotoAndStop("playOver");
}

playPause.onRollOut = playPause.onReleaseOutside = function()
{
	if(this._currentframe == 10) this.gotoAndStop("pause");
	else this.gotoAndStop("play");
}

playPause.onRelease = function()
{
	if (this._currentframe == 10)
	{
		this.gotoAndStop("playOver");
		this._parent.pauseIt();
	}
	else
	{
		this.gotoAndStop("pauseOver");
		this._parent.unPauseIt();
	}
}

//Nextbutton
next.onRollOver = function()
{
	this.gotoAndStop("nextOver");
}

next.onRollOut = next.onReleaseOutside = function()
{
	this.gotoAndStop("next");
}

next.onRelease = function ()
{
	this._parent.playSong();
}

frei nach gotoandlearn.com/
 
Zuletzt bearbeitet:
Gibt die PHP-Datei auf dem Server denn auch richtig formatierten (XML-)Code aus, denn der Player versteht? Vielleicht verschluckt er sich da.
 
am phpscript kanns eher nicht liegen. ich hab mal eine xml selber gebaut die ich meinem flash zufressen gegeben hab. darin waren verweise auf lokale dateien und auf eine datei vom http-server. die lokalen hat er gefressen, die vom http-server nicht. :(

...und das verrückte an der ganzen sache ist ja, dass er die keinerlei probleme mit den mp3s vom server hat, wenn ich in flash diese funktion nutze um es vor der veröffentlichung zu testen.
 
@Falconfly: Danke, ich hab da echt was im errorlog gefunden:
die mp3player.swf hat einen fehler gemacht. an der stelle wo im dateinamen eine raute ist, hat sie den dateinamen einfach abgebrochen.

log:
Code:
File does not exist: C:/xampp/htdocs/iTunes/iTunes Music/Podcasts/Bits und so/166 Bits und so
(die datei heißt wirklich: "166 Bits und so #166 (Flaschenmops).mp3")

jetzt ist die frage: wie bringe ich meinem flash-mp3player bei, dass eine raute nichts schlimmes ist?

...umbenennen kommt nicht in frage, weil der inhalt von diesem ordner immer wieder verändert wird, und neue sachen hinzukommen, die dann wieder manuell umbenannt werden müssten.
 
Die Raute ist im HTML ja ein Spezialzeichen, steuert einen Anker im HTML-Code an (sucht also nach <a name="166 (Flaschenmops).mp3" />). Im Dateinamen sollte die eigentlich nicht vorkommen. Der Browser öffnet die Datei ohne Probleme?

Es wird Dir wohl nichts anderes übrig bleiben, als solche Zeichen extra zu behandeln, so daß aus der Raute ein %23 usw. wird. Ich kann aber nicht sagen, ob das hier besser in der PHP- oder in der Flash-Datei passieren sollte.
 
ich versuchs einfach in php, ich glaub da gibts sogar so nen schönen befehl dafür :)

...aber was ich dann nicht verstehe ist, warum es ohne anstand funktioniert, wenn ich es in flash cs4 teste...
.
EDIT :
.

Die Raute ist im HTML ja ein Spezialzeichen,
...es ist ja eigentlich xml... ist des trotzdem ein sonderzeichen?
 
das zeichen steht bei dir zwar in einer xml-datei, aber es ist bestandteil einer url. wenn du einen link zu einer html-seite aufrufst, dann führt dich das rautezeichen zu einem "anker" in der html-datei, dessen name dem teil hinter der raute entspricht (s.o.). wenn ein webserver so eine url verarbeitet, wird nur der teil vor dem rautezeichen als dateiname interpretiert, der rest als name eines ankers. solange du die dateien per http ausliefern willst, darf die url keine raute enthalten.
 
bevor ich jetzt anfange auschließlich die rauten zu ersetzen, gibts da noch andere böse sachen? zB klammern?
 
der schrägstrich logischerweise und imho auch das fragezeichen. beim und-zeichen würde ich auch probleme erwarten, ebenso beim prozent-zeichen. kurz gesagt, erwarte ich bei den meisten sonderzeichen probleme. punkt, bindestrich und unterstrich gehen in ordnung, aber der rest?
 
keine Umlaute und keine Sonderzeichen in Dateinamen verwenden, außer . - _ die kann man bedenkenlos verwenden, der Rest kann unter Umständen Probleme machen.
 
Code:
<?xml version="1.0" encoding="UTF-8"?>
<songs>
	<song url="Goresh.mp3" />
	<song url="ordner/frei.mp3" />
	<song url="Boulevard.mp3" />
</songs>

und das funktioniert auch, wie s soll.

ABER

wenn ich jetzt eine zeile wie

Code:
<song url="http://192.168.2.111/iTunes/iTunes Music/Podcasts/Bits und so/164 Bits und so #164 (Gerockt).mp3" />
oder alternativ
Code:
<song url="http://192.168.2.111/iTunes/iTunes%20Music/Podcasts/Bits%20und%20so/164%20Bits%20und%20so%20%23164%20%28Gerockt%29.mp3" />

da rein setzte spielt er s einfach nicht :(

...man schaue unter "oder alternativ", also eine komplette ersetzung der sonderzeichen kann man auch vergessen :(
sicher, dass man die klammern nicht einfach so in den pfad schreiben kann?
 
Ich würde anstatt dem %20 als Platzhalter mal einfach nen _ versuchen ;)
%20 wäre ja zum Beispiel der Platzhalter der für ein Leerzeichen verwendet wird, vllt hakt es ja da :)

Bei mir im Betrieb werden von uns bei Dateinamen von Kunden, die Leerzeichen beinhalten, diese immer durch _ ersetzt, um Problemen von vornherein aus dem Weg zu gehen.

Mein Tip daher ... die ollen %20 müssen da irgendwie raus!


EDIT:
Ach kagge!
Ich seh gerade das die URLs Bezug auf iTunes nehmen und vermute mal das Du da gar keinen Einfluss auf die Gestaltung der Dateinamen hast, richtig? Hmmm...

EDIT DIE ZWEITE:
Ich kenn mich ja leider nicht so sehr mit flash aus ... aber gibt es da vllt die Möglichkeit/Notwendigkeit Leerstellen anders zu kennzeichnen? Ich persönlich finde es aus beruflicher Erfahrung immer noch absolut hässlich diese zu verwenden und bin mir nach Deinen Beispielen relativ sicher das es auch daran scheitert ...
 
Zuletzt bearbeitet:
Zurück
Oben Unten