es gibt hier im forum viele tutorials die mir zeigen wie ich mir einen mp3 player basteln kann.
nur da ich nen kostenlosen webspace anbieter besitze sind mp3s dort verboten.
jetzt hab ich mir gedacht die mp3s in einer swf zu speichern was ja auch den vorteil hat das sie kleiner und daher auch platzspahrender sind.
da ich jetzt das ganze so programieren möchte das ich über eine xml die swf in einen player laden will wollte ich fragen was ich in dem folgenden script ändern muss.
PHP-Code:
stop();//film anhalten
songliste = new XML();//neues XML Objekt
songliste.ignoreWhite=true;//Leerzeichen ignorieren
songliste.onLoad = function (success) {//onLoad function (wird ausgeführt, wenn die daten geladen werden)
if(success) {//wenn das laden erfolgreich war
//arrays erstellen
_global.songnamen = [];
_global.songfiles = [];
for (var i=0; i<songliste.firstChild.childNodes.length; i++) {//für alle Elemente in der XMLfile
//Die attribute auslesen und in die Arrays packen
_global.songnamen[i] = songliste.firstChild.childNodes[i].attributes.name;
_global.songfiles[i] = songliste.firstChild.childNodes[i].attributes.file;
trace(songnamen[i]+" "+songfiles[i]);//überprüfen, ob wirklich die Daten richtig übergeben wurden
}
_root.createEmptyMovieClip("sound_mc",1);
_root.sound_mc.sound_obj = new Sound();
_global.song_nr = random(songfiles.length); // per Zufall einen Song auswählen
_root.sound_mc.song_starten(songfiles[song_nr],songnamen[song_nr]); // song, der grade per Zufall ausgewählt wurde starten
} else {anz.text="Fehler beim Laden der XML datei"}//falls ein Fehler auftritt beim Laden
}
MovieClip.prototype.song_starten = function (file, name) {
this.sound_obj.loadSound(file,true)//true steht hier für streaming=an
this.onEnterFrame = function () {//das onEnterFrame Ereignis
if(this.sound_obj.position>0) {//wenn der Sound startet
delete this.onEnterFrame; // das onEnterFrame Ereignis löschen
this._parent.anz.text=name; //name wurde als parameter it übergeben
} else {
this._parent.anz.text="loading..." //this._parent heißt soviel wie: dieser_mc_hier.die_übergeordnete_instanz dort liegt nämlich das textfeld.
}
}
this.sound_obj.onSoundComplete = function () {//wenn der sound fertig abgespielt wurde
(song_nr==songfiles.length-1)? _global.song_nr=0 : _global.song_nr++;//nächsten Song auswählen (-1 da song_nr bei 0 anfäng)
_root.sound_mc.song_starten(songfiles[song_nr],songnamen[song_nr]);//nächsten Song starten
}
}
btn_play.onRelease = function () {
this._parent.sound_mc.song_starten(songfiles[song_nr],songnamen[song_nr]);//aktuell ausgewählten Song starten
}
btn_stop.onRelease = function() {
this._parent.sound_mc.sound_obj.stop(); //Wiedergabe stoppen
this._parent.anz.text="Wiedergabe gestoppt";
}
btn_next.onRelease = function () {
(song_nr==songfiles.length-1)? _global.song_nr=0 : _global.song_nr++;//nächsten Song auswählen (-1 da song_nr bei 0 anfäng)
_root.sound_mc.song_starten(songfiles[song_nr],songnamen[song_nr]);//nächsten Song starten
}
btn_prev.onRelease = function () {
(song_nr==0)? _global.song_nr=songfiles.length-1 : _global.song_nr--;//vorherigen Song auswählen(song_nr--) es seiden der erste wurde grade abgespielt.. dann wieder hinten anfangen
_root.sound_mc.song_starten(songfiles[song_nr],songnamen[song_nr]);//vorherigen Song starten
}
songliste.load("songlist.xml");//Liste laden
die xml datei sieht so aus:
PHP-Code:
<?xml version='1.0' encoding='utf-8'?>
<songs>
<song name="Lied1" file="sound1.swf" />
<song name="Lied2" file="sound2.swf" />
</songs>
und die swf in der die mp3 gespeichert ist ist so aufgebaut das im ersten frame der ton sofort abgespielt wird.
fals mir jemand dabei helfen kann währe ich echt dankbar.
eins muss ich dazu sagen ich bin anfänger in flash (programiere seit ca. 3 monate unregelmäsig so als hobby)