Audioplayer startet den ersten Song nicht + ID3 Probleme

mXa

Mitglied
Hallo zusammen.
Nach langem Studium der hier ausgestellten Tutorials habe ich mich an meinen ersten Audioplayer getraut. Er liest eine Playlist ein, welche von einem PHP-Script erstellt wird, und soll dann eben jene Lieder wiedergeben. Das funktioniert auch alles nicht schlecht, nur leider schaffe ich es nicht, dass der erste Song beim Neu-Laden der SWF losgespielt wird. Außerdem gibt er bei keinem Lied die ID3-Tags (v.2.0) wieder, obwohl sie in jedem Song stehen.

Damit man weiß, womit ich mich herumkämpfe, hier einmal das PHP-Script:
PHP:
<?php
if($_GET['action'] == "playlist"){
     $handle = opendir("../sounds");
     header("content-type: text/plain");
     $i = 1;
     while($dir = readdir($handle)){
            if($dir != "." AND $dir != ".."){
                echo "&title".$i."=../sounds/".$dir."\n";
                $i++;
            }
     }
 }

/*spuckt etwa so etwas aus:
&title1=../sounds/01-fergie-fergalicious_(feat._will.i.am).mp3
&title2=../sounds/doctor_pressure.mp3
&title3=../sounds/for_you.mp3
&title4=../sounds/house_remix.mp3
&title5=../sounds/my_love.mp3
&title6=../sounds/summer_love.mp3 */
?>

Die .fla kann man dann im Anhang finden.

Ich bin um jede Hilfe dankbar.

liebe Grüße
Max Ehlers
 

Anhänge

Hallo,

da ich weder deine MP3-Dateien noch dein PHP-Skript testen kann, wag ich mal einen Schuss ins Blaue:

Flash funktioniert asynchron, d.h. Code wird auch nach einem Ladebefehl weiterhin ausgeführt, unabhängig vom Erfolg oder Nichterfolg eines Ladevorgangs. Du aber versuchst gleich nach dem Aufruf des Ladebefehls die ID3-Tags einer *.mp3-Datei abzufragen, die mit 99.99-prozentiger Wahrscheinlichkeit noch nicht geladen ist.
Für das Sound-Objekt gibt es, wie auch für das LoadVars-Objekt, Event-Handler, die einem erlauben, das Ende eines Ladevorgangs an Anweisungen zu knüpfen. Für das Sound-Objekt gibt es sogar einen Event-Handler, der ausgelöst wird, wenn die ID3-Tags der Ziel-Datei eines Sound-Objekts verfügbar sind: onID3. Dein Skript könnte aussehen:

Code:
snd.onID3 = function () {
	if(snd.id3.TIT2 != NULL) {
		_root.name.text = "";
		_root.name.text = snd.id3.TPE1 + ":" + snd.id3.TIT2;
	}
	else { 
		_root.name.text = "nameless sound";
	}
}

gruss
 
danke! Das hat super funktioniert!
Aber leider habe ich noch immer keinen Schimmer, warum der 1. Song nicht gleich beim Starten kommt...

Ich habe es jetzt geschafft... Ich habe die _root.PlaySound() in die Load-Funktion gepackt :)

Wenn jemand möchte, poste ich das ganze Script nocheinmal...

Grüße
Max
 
Zuletzt bearbeitet:
Zurück