Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-04-2007, 21:43   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 6
Streamen von Sound stoppen

Hallo Ihr!

Ganz bestimmt wisst ihr weiter, vielleicht meldet sich ja jemand.

Also, ich habe einen recht simplen mp3-Player nach einem Tutorial gebastelt, mit Pause, Stop, Vor und Zurück-button.
Prinzip ist, dass in einem audio-objekt nach Bedarf der jeweilige Titel geladen wird, welcher das ist, wird mit einer Funktion definiert. Der Titel soll durchlaufen, habe den Clip deswegen Lauf_mc genannt. Die Titel hab ich mal mit Buchstaben ersetzt.

// Songtitel zur Ausgabe im Textfeld
var titel:Array = ["a", "b", "c", "d", "e", "f", "g", "h"];
// Dateinamen
var dateien:Array = ["audio/a.mp3", "audio/b.mp3", "audio/c.mp3", "audio/d.mp3", "audio/e.mp3", "audio/f.mp3", "audio/g.mp3", "audio/h.mp3"];
// Welches Stueck aus Array zuerst (0= erstes Stueck)
var songNr:Number = 0;

//Audio-Objekt erstellen
var musikBox:Sound = new Sound();

function spieleAudio() {
if (songNr>=dateien.length) {
//Song-Nummer zu hoch -> von vorne beginnen
songNr = 0;
} else if (songNr<0) {
/* Song-Nummer zu niedrig -> letztes Element nehmen*/
songNr = dateien.length-1;
}
//MP3 laden
musikBox.loadSound(dateien[songNr], true);
//Titel anzeigen

Lauf_mc.Titel_txt.text = titel[songNr];
}

musikBox.onSoundComplete = function() {
//Variable um 1 erhoehen
songNr++;
//Funktionsaufruf
spieleAudio()
};

Next_btn.onRelease = function() {
songNr++;
spieleAudio();
};

Back_btn.onRelease = function() {
songNr--;
spieleAudio();
};

Stopp_btn.onRelease = function() {
musikBox.stop();
Lauf_mc.Titel_txt.text = "";
};

Start_btn.onRelease = function() {
spieleAudio();
};


Jetzt ist mir in der Downloadsimulation aufgefallen, dass nach einem Klick auf den Next-Button zwar das nächste Lied gestreamt wird, aber eben auch das vorherige weiter. Klickt man also ungeduldig durch den Player, hat man so dann mal 8 oder mehr Songs gleichzeitig am Streamen, was einfach zu lang dauert. Kann man also das Streamen eines Songs unterbrechen? Oder bevor etwas neues in das Soundobjekt geladen wird dieses vielleicht leeren oder so?

Eine andere Sache wäre noch, dass der Player so wie er jetzt programmiert ist auch schon einmal vollständig geladene Titel wieder neu lädt. Kann man das umgehen, also schon mal Geladenes "konservieren"??

Vielen Danke für Hilfe!
Daniel
Waschmaschinexy ist offline   Mit Zitat antworten
Alt 24-04-2007, 22:25   #2 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Vielleicht lehne ich mich jetzt zuweit aus dem Fenster!!
Einen angekickten Sound, kannst Du nicht stopen!!
Der lädt bis er da ist
Allerdings kann man prüfen, ob ein Titel schon geladen ist, das dürfte Deine Probleme lösen!!
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"

Geändert von RustyCake (24-04-2007 um 22:27 Uhr)
RustyCake ist offline   Mit Zitat antworten
Alt 25-04-2007, 08:54   #3 (permalink)
ontheoutsidelookingin
 
Benutzerbild von dassoud
 
Registriert seit: Jun 2001
Ort: Dortmund
Beiträge: 5.897
das problem hatte ich auch schonmal. geholfen hat nur das laden einer nicht existenten sounddatei (soweit ich mich erinnere):

ActionScript:
  1. //MP3 laden
  2. musikBox.loadSound('gibtsnicht.mp3', true);
  3. musikBox.loadSound(dateien[songNr], true);
__________________

33rpm
dassoud ist offline   Mit Zitat antworten
Alt 25-04-2007, 11:13   #4 (permalink)
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 6
Ne, das funktioniert leider auch nicht.
Ich mein, dann ist es doch um einiges effizienter, pro Titel ein Soundobjekt zu vergeben, auf die Playeroberfläche zu verzichten, pro Titel eben einen Playbutton zu vergeben, der dann das jeweilige Soundobjekt anspricht. So wird zumindest das immer wieder erneute Laden vermieden.
Hmmm ...
Waschmaschinexy ist offline   Mit Zitat antworten
Alt 25-04-2007, 15:10   #5 (permalink)
ontheoutsidelookingin
 
Benutzerbild von dassoud
 
Registriert seit: Jun 2001
Ort: Dortmund
Beiträge: 5.897
gab es nicht schon mal einen bug im flashplayer 6, der ähnliches verursacht hat? ich dachte, das wäre mittlerweile alles gelöst. scheint ja doch nicht der fall zu sein

hast du schonmal versucht, dein sound-object vor jedem laden zu löschen? sollte das nicht funktionieren, auch mal den target_clip entfernen.

(new Sound([target:Object])
Erstellt ein neues Sound-Objekt für den angegebenen Movieclip target)
__________________

33rpm
dassoud ist offline   Mit Zitat antworten
Alt 25-04-2007, 15:20   #6 (permalink)
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 6
Hatte schon mal die Idee, dass man das Objekt immer wieder leeren müsste, bevor man was Neues lädt, wusste aber nicht wie das geht.
Ich probiers mal ..

Hmm .. komme da nicht weiter, habe jetzt auch mal das Laden des Soundobjekts auf jeden Knopf separat gelegt, also nicht einfach oben drüber, aber auch dann lädt er einfach weiter. Wird sich wohl nicht ändern lassen.

Geändert von Waschmaschinexy (25-04-2007 um 15:39 Uhr)
Waschmaschinexy ist offline   Mit Zitat antworten
Alt 25-04-2007, 15:53   #7 (permalink)
Home Flasher
 
Benutzerbild von Flash Doc
 
Registriert seit: Apr 2004
Ort: Engelskirchen
Beiträge: 345
Hallo,

ist eigentlich ganz einfach:
  • Besucher klickt den Next- oder Prev-Button
  • Der aktuell laufende Sound wird mit Sound.stop(); angehalten.
  • Das aktuelle Sound-Objekt durch delete soundObj; entfernt und anschließend mit new wieder angelegt.
  • Der nächste oder vorherige Titel wird geladen.

Entscheiden ist das Stoppen und anschließende Löschen des Instanz des Sound-Objektes.

Gruß vom Flash Doc
__________________
Erst Flash CS5 und dann Fläsch' Bier !!!
Flash Doc ist offline   Mit Zitat antworten
Alt 28-04-2007, 19:50   #8 (permalink)
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 6
Also .. bin immer noch nicht weiter gekommen.
Habe versucht, die Tipps zu befolgen, bin mir aber nicht sicher, ob ich alles richtig gemacht habe.
Vielleicht macht sich ja jemand die Mühe, seinen Vorschlag in das Script einzufügen, damit ich gar keine Möglichkeit habe, was falsch zu machen

Lieben Dank!
Waschmaschinexy ist offline   Mit Zitat antworten
Alt 06-06-2007, 16:05   #9 (permalink)
ontheoutsidelookingin
 
Benutzerbild von dassoud
 
Registriert seit: Jun 2001
Ort: Dortmund
Beiträge: 5.897
*bump*, weil ich das problem kürzlich nochmal hatte. die einzige methode, die das problem zuverlässig gelöst hat, war das laden einer sehr kleinen, ein paar byte großen und stillen mp3-datei. die datei muss existieren und es muss eine mp3 datei sein. alles andere hat nicht funktioniert. swf exportiert als flash8.
__________________

33rpm
dassoud ist offline   Mit Zitat antworten
Alt 06-06-2007, 20:15   #10 (permalink)
Neuer User
 
Registriert seit: Apr 2007
Beiträge: 6
Ok, das probier ich mal.
Vorfrage: Wann genau soll die stille Datei denn geladen werden? Also ich klick quasi auf "next", und dann wird vor der gewünschten mp3 die stille geladen, oder?
Waschmaschinexy ist offline   Mit Zitat antworten
Alt 07-06-2007, 11:22   #11 (permalink)
ontheoutsidelookingin
 
Benutzerbild von dassoud
 
Registriert seit: Jun 2001
Ort: Dortmund
Beiträge: 5.897
jau, vor der eigentlichen datei lädst du dann null.mp3 (so hab ich die genannt). musst natürlich aufpassen, dass dadurch nicht u.u. irgendwelche events des sound-objects ausgelöst werden.
__________________

33rpm
dassoud ist offline   Mit Zitat antworten
Alt 08-02-2008, 10:44   #12 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Ort: Basel
Beiträge: 119
Zitat:
Zitat von dassoud Beitrag anzeigen
das problem hatte ich auch schonmal. geholfen hat nur das laden einer nicht existenten sounddatei (soweit ich mich erinnere):

ActionScript:
  1. //MP3 laden
  2. musikBox.loadSound('gibtsnicht.mp3', true);
  3. musikBox.loadSound(dateien[songNr], true);
Das hat bei mir Funktioniert! Natürlich nicht in der IDE selbst sondern nur Online (sonst kommt ein Fehler, dass URL nicht geöffnet werden kann).

Ist besser als ein kleines MP3 zu laden, da der Event onLoad bei einer ungültigen Datei "false" an die Funktion weiter gibt. Das kann man dann auch sauber "abfangen".
__________________
Möge die Macht mit uns sein!
FCBASEL ist offline   Mit Zitat antworten
Alt 08-02-2008, 13:04   #13 (permalink)
ontheoutsidelookingin
 
Benutzerbild von dassoud
 
Registriert seit: Jun 2001
Ort: Dortmund
Beiträge: 5.897
Zitat:
Zitat von FCBASEL Beitrag anzeigen
Das hat bei mir Funktioniert! Natürlich nicht in der IDE selbst sondern nur Online (sonst kommt ein Fehler, dass URL nicht geöffnet werden kann).
Bei mir nicht, habe das u.A. im Safari im Activity-Window beobachtet. Da wurde der Ladevorgang nur dann abgebrochen, wenn ich eine kleine MP3-Datei geladen habe.

Zitat:
Zitat von FCBASEL Beitrag anzeigen
Ist besser als ein kleines MP3 zu laden, da der Event onLoad bei einer ungültigen Datei "false" an die Funktion weiter gibt. Das kann man dann auch sauber "abfangen".
Man kann das ja ohne Probleme so anpassen, dass bei onLoad der kleinen Datei nix passiert.
__________________

33rpm
dassoud ist offline   Mit Zitat antworten
Alt 08-02-2008, 23:09   #14 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Ort: Basel
Beiträge: 119
Zitat:
Zitat von dassoud Beitrag anzeigen
Bei mir nicht, habe das u.A. im Safari im Activity-Window beobachtet. Da wurde der Ladevorgang nur dann abgebrochen, wenn ich eine kleine MP3-Datei geladen habe.
Habe nun auch noch ein paar Tests gemacht (alles unter Windows).

- Firefox (Player 7, 8 und 9) -> funktioniert
- Safari (Player 9) -> funktioniert
- Opera (Player 9) -> NICHT FUNKTIONIERT hat paralell das alte weiter geladen
- Internet Explorer 7 (Player 9) -> hat funktioniert.

Ja da bleibt mir wohl nichts anderes übrig als diesen Workaround mit dem kleinen Audio File zu machen!

Oder gibt es evtl. noch andere Varianten? Ich streame die Audio Files nicht, habe ein Playliste in der man zwischen mehreren MP3 "switchen" kann.
__________________
Möge die Macht mit uns sein!
FCBASEL 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 18:00 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele