Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-11-2006, 11:17   #1 (permalink)
Neuer User
 
Benutzerbild von Yorker
 
Registriert seit: Nov 2004
Ort: Südhessen
Beiträge: 111
mp3player spielt immer nur 1 Titel

Hallo,

ich habe mir aus diesem Forum einen Audioplayer runtergeladen. Leider muss man wieder auf Play drücken, wenn ein Lied zu Ende ist. Der nächste Titel erscheint zwar in der Leiste, das Lied wird aber nicht automatisch abgespielt. Doch genau das will ich.

Kann mir jemand sagen, wo ich was im Script ändern muss? Muss leider zugeben, dass ich das Script kaum verstehe, deshalb komme ich allein nicht weiter. Ich erkenne nicht einmal, ob das so beabsichtigt ist oder ein Fehler drin ist.

Yorker


Code:
stop();
playlist = new XML();
playlist.ignoreWhite = true;
playlist.onLoad = function(success) {
	if (success) {
		_global.songname = [];
		_global.songband = [];
		_global.songfile = [];
		for (var i = 0; i<playlist.firstChild.childNodes.length; i++) {
			_global.songname[i] = playlist.firstChild.childNodes[i].attributes.name;
			_global.songfile[i] = playlist.firstChild.childNodes[i].attributes.file;
			trace(songname[i]+"  "+songfile[i]);
		}
	}
	_root.createEmptyMovieClip("sound_mc", 1);
	_root.sound_mc.sound_obj = new Sound();
	_global.song_nr = random(songfile.length);
	_root.sound_mc.songStarter(songfile[song_nr], songname[song_nr]);
};
MovieClip.prototype.songStarter = function(file, name) {
	this.sound_obj.loadSound(file, true);
	this.onEnterFrame = function() {
		if (this.sound_obj.position>0) {
			delete this.onEnterFrame;
			this._parent.display_txt.text = name;
		} else {
			this._parent.display_txt.text = "loading...";
		}
	};
	this.sound_obj.onSoundComplete = function() {
		(song_nr == songfiles.length-1) ? _global.song_nr=0 : _global.song_nr++;
		_root.sound_mc.songStarter(songfiles[song_nr], songname[song_nr]);
	};
};
btn_play.onRelease = function() {
	this._parent.sound_mc.songStarter(songfile[song_nr], songname[song_nr]);
};
btn_stop.onRelease = function() {
	this._parent.sound_mc.sound_obj.stop();
};
btn_fw.onRelease = function() {
	(song_nr == songfile.length-1) ? _global.song_nr=0 : _global.song_nr++;
	_root.sound_mc.songStarter(songfile[song_nr], songname[song_nr]);
};
btn_rev.onRelease = function() {
	(song_nr == 0) ? _global.song_nr=songfile.length-1 : _global.song_nr--;
	_root.sound_mc.songStarter(songfile[song_nr], songname[song_nr]);
};
playlist.load("playlist.xml");

Nachtrag:
Beim Film testen zeigt das Ausgabe-Fenster am Ende des ersten Titels folgendes an:
Error opening URL "file:///" + der Pfad des Ordners, der alle mp3-Daten enthält.
Hoffe das hilft.
Der Player hat eine Zufallsfunktion eingebaut, daher weiss ich, dass er theoretisch alle Dateien abspielen kann. Er stoppt jedoch immer nach dem ersten Lied.

Geändert von Yorker (14-11-2006 um 21:27 Uhr)
Yorker ist offline   Mit Zitat antworten
Alt 14-11-2006, 21:26   #2 (permalink)
Neuer User
 
Benutzerbild von Yorker
 
Registriert seit: Nov 2004
Ort: Südhessen
Beiträge: 111
Hi, hat denn niemand ´ne Idee?

Ich wäre auch überglücklich, wenn mir jemand einen anderen Audioplayer mit XML-Datei als Playliste (Script oder Download) empfehlen kann. Wichtig ist jedoch, dass der erste Titel per Zufall ausgewählt wird. Die einzigen Buttons, die ich brächte wären stop, play und Titel vor/zurück. Ich bin Anfänger und kann es nicht allein programmieren. Bin für jede Hilfe dankbar.

Yorker
Yorker ist offline   Mit Zitat antworten
Alt 17-11-2006, 20:45   #3 (permalink)
Neuer User
 
Benutzerbild von Yorker
 
Registriert seit: Nov 2004
Ort: Südhessen
Beiträge: 111
Hi, kann mir wirklich niemand einen Tipp geben? Ein anderes Script vielleicht? Ich habe hier im Forum schon gesucht, aber nichts besseres gefunden.

Yorker
Yorker ist offline   Mit Zitat antworten
Alt 17-11-2006, 20:50   #4 (permalink)
Banned
 
Benutzerbild von ballaballa
 
Registriert seit: Sep 2006
Beiträge: 793
diese funktion ist schon eingebaut
siehe hier:
PHP-Code:
this.sound_obj.onSoundComplete = function() {
        (
song_nr == songfiles.length-1) ? _global.song_nr=_global.song_nr++;
        
_root.sound_mc.songStarter(songfiles[song_nr], songname[song_nr]);
    }; 
mal ne blöde frage das iss nich zufälligerweise was sehrsehr altes von sonar?

der programmierstyle erinnert mich so

edit:... tracere mal ob die funktion aufgerufen wird

Geändert von ballaballa (17-11-2006 um 20:51 Uhr)
ballaballa ist offline   Mit Zitat antworten
Alt 17-11-2006, 21:24   #5 (permalink)
Neuer User
 
Benutzerbild von Yorker
 
Registriert seit: Nov 2004
Ort: Südhessen
Beiträge: 111
Danke für deine Reaktion. Sorry, dass ich mir nicht bekannt. Kann gut sein, dass es sehr alt ist. Dafür war dieses Script das einzige, dass alles hatte, was ich suchte.
Wenn die Funktion eingebaut ist, dann ist doch aber unklar, warum der zweite Titel nicht automatisch startet und stattdessen die Fehlermeldung kommt. Hast du dafür eine Erklärung?

Wie "tracere" ich das denn?

Yorker

Geändert von Yorker (17-11-2006 um 21:25 Uhr)
Yorker ist offline   Mit Zitat antworten
Alt 17-11-2006, 21:35   #6 (permalink)
Banned
 
Benutzerbild von ballaballa
 
Registriert seit: Sep 2006
Beiträge: 793
das es wenn überhaupt älter ist ist ja nicht schlimm war nur interssehalber, ist giut und strikt programmiert...

PHP-Code:
this.sound_obj.onSoundComplete = function() {

trace("der sound ist zuende onSoundComplete ist true, somit müsste nun der nächste saound gespielt werden, dies hier ist eine ausgabe wie ein alertfentser in javascript gedaht zum debuging ohne debugger");
        (
song_nr == songfiles.length-1) ? _global.song_nr=_global.song_nr++;
        
_root.sound_mc.songStarter(songfiles[song_nr], songname[song_nr]);
    }; 
ich hoffe das ist sebsterklärend

Geändert von ballaballa (17-11-2006 um 21:37 Uhr)
ballaballa ist offline   Mit Zitat antworten
Alt 17-11-2006, 21:54   #7 (permalink)
Neuer User
 
Benutzerbild von Yorker
 
Registriert seit: Nov 2004
Ort: Südhessen
Beiträge: 111
Auf die Erweiterung:
trace(songname[i]+" "+songfile[i]);

folgt nur die Ausgabe:
Error opening URL "file:///C|/Dokumente%20und%20Einstellungen/Internet/Desktop/AUDIO/undefined"
undefined undefined

Gebe ich deinen Text noch dazu, spuckt er auch deinen Text aus, trotzdem wird der Sound nicht gespielt.

Liegt es vielleicht gar nicht am Script, sondern am Rest? XML-File, Aufbau der fla-Datei oder Dateiverzeichnis???

Geändert von Yorker (17-11-2006 um 21:57 Uhr)
Yorker ist offline   Mit Zitat antworten
Alt 17-11-2006, 21:59   #8 (permalink)
Banned
 
Benutzerbild von ballaballa
 
Registriert seit: Sep 2006
Beiträge: 793
dann stimmt etwas mit deiner xml datei nicht

oder warte mal
ändere mal das :
Zitat:
_root.sound_mc.songStarter(songfiles[song_nr], songname[song_nr]);
in das
Zitat:
_root.sound_mc.songStarter(songfiles[_global.song_nr], songname[_global.song_nr]);
kann sein das er die globale nicht erkennt
ballaballa ist offline   Mit Zitat antworten
Alt 17-11-2006, 22:18   #9 (permalink)
Neuer User
 
Benutzerbild von Yorker
 
Registriert seit: Nov 2004
Ort: Südhessen
Beiträge: 111
Hi, habe ich probiert. Beim Einsetzen unter
this.sound_obj.onSoundComplete = function() {
hat nichts geändert.

Beim zusätzlichen Eintrag weiter oben im Script, führte dazu, dass nicht einmal der erste Titel abgespielt wird.
Yorker ist offline   Mit Zitat antworten
Alt 17-11-2006, 22:28   #10 (permalink)
Banned
 
Benutzerbild von ballaballa
 
Registriert seit: Sep 2006
Beiträge: 793
ok dann gehen wir anderes daran

nimm den ursprünglichen quelltext und ändere dieshier
PHP-Code:
this.sound_obj.onSoundComplete = function() {
trace("----> " +song_nr)
        (
song_nr == songfiles.length-1) ? _global.song_nr=_global.song_nr++;
trace("----> " +song_nr)
        
_root.sound_mc.songStarter(songfiles[song_nr], songname[song_nr]);
    }; 
du müsstest hier 2 ausgaben bekommen die mit ----> beginnen was kommt da raus?

Geändert von ballaballa (17-11-2006 um 22:29 Uhr)
ballaballa ist offline   Mit Zitat antworten
Alt 17-11-2006, 22:33   #11 (permalink)
Neuer User
 
Benutzerbild von Yorker
 
Registriert seit: Nov 2004
Ort: Südhessen
Beiträge: 111
Ja, die Pfeile werden ausgegeben. Es folgte aber trotzdem noch die Zeile
Error opening URL file:///C|/Dokumente%20und%20Einstellungen/Internet/Desktop/AUDIO/undefined"

Nach den Pfeilen werden Zahlen angezeigt! Zum Beispiel:
----> 1
----> 2

oder

----> 2
----> 3

Habe auch ein Display(Textfeld), dass den nächsten Titel korrekt anzeigt, nur gespielt wird nichts.

Geändert von Yorker (17-11-2006 um 22:48 Uhr)
Yorker ist offline   Mit Zitat antworten
Alt 17-11-2006, 22:54   #12 (permalink)
Banned
 
Benutzerbild von ballaballa
 
Registriert seit: Sep 2006
Beiträge: 793
ok nächster versuch...

PHP-Code:
this.sound_obj.onSoundComplete = function() {
trace("----> " +songfiles[song_nr])
        (
song_nr == songfiles.length-1) ? _global.song_nr=_global.song_nr++;
trace("----> " +songfiles[song_nr])
        
_root.sound_mc.songStarter(songfiles[song_nr], songname[song_nr]);
    }; 
was kommt da raus?
ballaballa ist offline   Mit Zitat antworten
Alt 17-11-2006, 22:56   #13 (permalink)
Banned
 
Benutzerbild von ballaballa
 
Registriert seit: Sep 2006
Beiträge: 793
PHP-Code:
delete this.onEnterFrame
lösch mal das raus... wundere dich nich wenn der player langsam ist und teste mal ob er dann den zweiten titel spielt.. wenn ja musst dud das onEnterFrame durch ein intervall ersetzen das nur einmal pro sekunde abfragt aus performance gründen
ballaballa ist offline   Mit Zitat antworten
Alt 17-11-2006, 23:29   #14 (permalink)
Neuer User
 
Benutzerbild von Yorker
 
Registriert seit: Nov 2004
Ort: Südhessen
Beiträge: 111
O.K. Habe ich gemacht (trace-Ausgabe + delete...) , doch dann kommt das raus.

----> undefined
----> undefined
Error opening URL "file:///C|/Dokumente%20und%20Einstellungen/Internet/Desktop/AUDIO/undefined"
Yorker ist offline   Mit Zitat antworten
Alt 18-11-2006, 02:41   #15 (permalink)
Neuer User
 
Benutzerbild von Yorker
 
Registriert seit: Nov 2004
Ort: Südhessen
Beiträge: 111
Lightbulb Hi, hat sich erledigt...

es waren zwei Schreibfehler im Originalscript, die ich natürlich mitkopiert hatte. Es gibt zwei Zeilen, in denen songfiles statt songfile steht. Also nur ein "s" zuviel. Nun springt er sogar an den Listenanfang, nachdem dem der letzte Song der XML-Liste abgespielt wurde. Das Testen hat ganz schön lange gedauert, aber jetzt ist alles Supergeil!
Das konnte ja auch keiner ahnen. Trotzdem Danke an ballaballa.

Für alle, die einen einfachen XML-Player mit Zufallsauswahl für den ersten Titel suchen, veröffentliche ich hier nochmal das korrigierte Script. Der Player zeigt nur den Titel des Songs an. Die Bedienung besteht nur aus Play, Stop, Titel vor, Titel zurück. Wer der ursprüngliche Verfasser dieses Scriptes ist, weiß ich nicht. An ihn geht ein fettes DANKE!

Ich hoffe bei euch funktioniert es auch!

Yorker

Actionscript:
Code:
stop();
playlist = new XML();
playlist.ignoreWhite = true;
playlist.onLoad = function(success) {
	if (success) {
		_global.songname = [];
		_global.songfile = [];
		for (var i = 0; i<playlist.firstChild.childNodes.length; i++) {
			_global.songname[i] = playlist.firstChild.childNodes[i].attributes.name;
			_global.songfile[i] = playlist.firstChild.childNodes[i].attributes.file;
			//trace(songname[i]+"  "+songfile[i]);
		}
	}
	createEmptyMovieClip("sound_mc", 1);	
	sound_mc.sound_obj = new Sound();
	_global.song_nr = random(songfile.length);
	sound_mc.songStarter(songfile[song_nr], songname[song_nr]);
};
MovieClip.prototype.songStarter = function(file, name) {
	this.sound_obj.loadSound(file, true);
	this.onEnterFrame = function() {
		if (this.sound_obj.position>0) {
			delete this.onEnterFrame;
			display_txt.text = name;
		} else {
			display_txt.text = "suche...";			
		}
	};
	this.sound_obj.onSoundComplete = function() {
		(song_nr == songfile.length-1) ? _global.song_nr=0 : _global.song_nr++;
		sound_mc.songStarter(songfile[song_nr], songname[song_nr]);
	};
};
btn_play.onRelease = function() {
	sound_mc.songStarter(songfile[song_nr], songname[song_nr]);
};
btn_stop.onRelease = function() {
	sound_mc.sound_obj.stop();
};
btn_fw.onRelease = function() {
	(song_nr == songfile.length-1) ? _global.song_nr=0 : _global.song_nr++;
	sound_mc.songStarter(songfile[song_nr], songname[song_nr]);
};
btn_rev.onRelease = function() {
	(song_nr == 0) ? _global.song_nr=songfile.length-1 : _global.song_nr--;
	sound_mc.songStarter(songfile[song_nr], songname[song_nr]);
};
playlist.load("playlist.xml");



Inhalt der XML-Datei (Hierbei liegen die mp3-Dateien im Ordner "sounds"):
Code:
<?xml version="1.0" encoding="UTF-8"?>
<songs>
<song name ="title_1" file="sounds/title_1.mp3" />
<song name ="title_2" file="sounds/title_2.mp3" />
<song name ="title_3" file="sounds/title_3.mp3" />
</songs>
Yorker ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 01:05 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele