Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-07-2003, 11:28   #1 (permalink)
Entwickler
 
Registriert seit: May 2003
Beiträge: 80
Unhappy streaming sound, preloaden

hallo,

in der Macromedia Flash MX Hilfe steht, dass eine Streaming
Sound bei Verwendung von loadSound solange vorausgeladen wird, bis genug Daten zur Dekomprimierung des Mp3's vorhanden sind und er den Sound dann abspielen kann.

Gibt es für diese benötigte Datenmenge einen ungefähren Richtwert?

Danke
ghost23 ist offline   Mit Zitat antworten
Alt 24-07-2003, 14:26   #2 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Das hängt von der Qualität der Verbindung ab.

Einen 64 kbit Mp3 kannst du theoretisch über eine 64 kb Isdn Leitung streamen, ohne dass du etwas vorladen musst.
Bei einem 128 kbit mp3 und gleicher Leitung musst du den halben Song vorladen. Eine dsl Leitung hat 768kbit, eine Modemverbindung 56 oder weniger. Je nach Zielgruppe kannst du damit ausrechnen, wieviel du vorladen musst. Evtl. kannst du auch vor dem Streamen messen, wie die Downloadrate ist, und dann entsprechend anpassen. Oder du richtest dich nach dem kleinsten gemeinsamen Nenner.

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 24-07-2003, 15:23   #3 (permalink)
Entwickler
 
Registriert seit: May 2003
Beiträge: 80
ja, das dachte ich mir auch. Jetzt habe ich also die soundbuftime mal auf einen Testwert, sagen wir die standardmäßigen 5 Sekunden eingestellt.

Nun habe ich mir, sobald der Streaming Sound anfängt zu spielen, mal die aktuelle sound.duration ausgeben lassen und stelle fest, dass flash sehr viel mehr als fünf sekunden vorrausgeladen hat.

Wieso jetzt das denn?
ghost23 ist offline   Mit Zitat antworten
Alt 24-07-2003, 15:31   #4 (permalink)
Entwickler
 
Registriert seit: May 2003
Beiträge: 80
um präzise zu sein, stelle ich fest, dass bei mp3 Dateien mit einer Bitrate von 192kbit/s ungefähr 3,8 mal soviel zeitlich vorrausgeladen wird wie in soundbuftime angegeben. Bei 128 kbit/s werden ungefähr 5,7 mal soviel geladen.

Lädt soundbuftime eigentlich x Sekunden vom Sound vorraus, oder lädt es einfach x sekunden lang soviel, wie es vom Sound kriegen kann?
ghost23 ist offline   Mit Zitat antworten
Alt 24-07-2003, 17:06   #5 (permalink)
Entwickler
 
Registriert seit: May 2003
Beiträge: 80
ich führe mal mein Selbstgespräch fort:

also, _soundbuftime, das blöde Ding, tut tatsächlich leider nix weiter, als eben einen streaming sound x Sekunden lang vorrauszuladen und dann abzuspielen. Cooler wäre ja, wenn er tatsächlich x Sekunden des Musikstücks vorrausladen würde, egal, wie lang es dauert und es dann abspielen würde.

Aber egal, der einzige Vorteil ist, dass ich mit _soundbuftime immerhin noch indirekt beeinflussen kann, ab wann flash den sound abspielen soll. ich muss halt selbst berechnen, wieviel Sekunden ich anhand einer gemessenen Downloadrate Daten laden muss, damit ich genau so viel im Speicher habe wie ich will, bevor dann Flash meinen Sound abspielt.

So. damit ihr's nur wisst ...
ghost23 ist offline   Mit Zitat antworten
Alt 30-07-2003, 08:51   #6 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Ort: Niederbayern
Beiträge: 4
Cooles Gespräch, ghost :-D

Aber mir hats was geholfen, weil ich es nun weiss... vorher wusst ichs nicht. zumindest nicht so genau...

Joe
__________________
fahren und fahren lassen...
joe-bresl ist offline   Mit Zitat antworten
Alt 30-07-2003, 09:08   #7 (permalink)
Entwickler
 
Registriert seit: May 2003
Beiträge: 80
ach,

jetzt geht's mir schon irgendwie besser
ghost23 ist offline   Mit Zitat antworten
Alt 31-07-2003, 11:22   #8 (permalink)
funkdisziplin
 
Registriert seit: Jul 2003
Beiträge: 2.790
synchronisiertes buffering von unterschiedlichen swf?

hi,

>>> synchronisiertes buffering von unterschiedlichen swf? <<<

hat sich jemand von euch schon einmal mit diesem Thema beschäftigt?

Gibt es dazu irgendwelche Tuts?

Wie wäre es wenn Herr Bokel mal in diese Richtung OpenSource zu entwickeln

-------------------


Ich hatte auf einem anderen Planeten damit zu tun, Stichworte wären:
RealServer, rtsp-Protokoll, SMIL

fragend grüßt ddd

Geändert von derdiedas (31-07-2003 um 11:23 Uhr)
derdiedas ist offline   Mit Zitat antworten
Alt 31-07-2003, 11:36   #9 (permalink)
Entwickler
 
Registriert seit: May 2003
Beiträge: 80
mir ist noch nicht ganz klar, was du machen willst.

Willst Du mehrere swf's parallel laden, oder direkt hintereinander, oder wie?
ghost23 ist offline   Mit Zitat antworten
Alt 31-07-2003, 12:00   #10 (permalink)
funkdisziplin
 
Registriert seit: Jul 2003
Beiträge: 2.790
parallel laden

was ich interessant fände wäre -

man hätte z.B. eine Videoexpertise (Vortrag) als swf.
Entweder als ein swf oder in mehrere swf aufgesplittet.

man hätte zusätzliche Info-swf (begleitende Texte, Schaubilder, Animationen).

Wenn man jetzt über eine Flashnav bestimmte "Sprungmarken" (Frames oder Zeit) im Videoexpertise.swf an"springt" soll zeitgleich einer der Info-swf gestreamt/gebuffered/abgespielt werden.

Alles kein Problem wenn die swf alle geladen sind,

aber wenn diese streamen, wie bekomme ich dann die Synchronisierung der unterschiedlichen swf auf einen Event (z.B. Klick in der Nav) hin?

Deshalb die Frage nach dem synchronisierten Buffering... .

Geändert von derdiedas (31-07-2003 um 12:08 Uhr)
derdiedas ist offline   Mit Zitat antworten
Alt 31-07-2003, 12:26   #11 (permalink)
Entwickler
 
Registriert seit: May 2003
Beiträge: 80
hmm,

also wenn Du in Deinem videoexpertise.swf zu einer Stelle springst, dann geht das ja praktisch von jetzt auf gleich. Dann erst anzufangen, einen info-film zu streamen, würde ja wohl nicht klappen.

Also müsstest Du immer bei abspielen an marke x vom videoexpertise.swf schon den info film von marke x+1 vorausladen, ob nun gestreamt oder nicht, ist ja erstmal egal. Das geht von der Logik her natürlich nicht beim allerersten info-Film, also muss der zusammen mit dem videoexpertise film geladen werden.

So würde ich jetzt denken ... ?!
ghost23 ist offline   Mit Zitat antworten
Alt 02-08-2003, 13:07   #12 (permalink)
funkdisziplin
 
Registriert seit: Jul 2003
Beiträge: 2.790
das mit marke x+1 funktioniert doch nur, wenn ich die navigation linear durchklicke.

der hook aber sollte doch sein, dass der user sich nonlinear durchklicken kann.

und somit bleibt die sache mit dem synchronisierten streaming bzw. buffering.

Mit dem Real Server, Real Player,dem rtsp:// Protokol und SMIL kann man parallel streamen lassen.
weiss vielleicht jemand ob man den FlashComm Server insoweit so steuern kann?

greets ddd

Geändert von derdiedas (02-08-2003 um 17:57 Uhr)
derdiedas ist offline   Mit Zitat antworten
Alt 04-08-2003, 08:29   #13 (permalink)
Entwickler
 
Registriert seit: May 2003
Beiträge: 80
hallo,

ahh, jetzt hab' ich's verstanden.

Mit dem FlashComm Server kenn ich mich leider nicht aus.

Folgende Möglichkeit sehe ich noch. Beim Preloaden von Flash-Filmen kann man leider nie genau wissen, wann sie anfangen werden zu streamen, besser gesagt, wann sie während des ladens bereits anfangen zu spielen. Man kann es zwar meines Wissens nicht vorrausberechnen, aber Du könntest ja eine Preloader Animation im Loop laufen lassen, so lange, bis dein Info-Film anfangen will zu spielen. Wann das ist, merkst Du, wenn der _currentframe dieses Films plötzlich nicht mehr eins ist (bei embedded Videos, die man per loadmovie reinlädt, habe ich festgestellt, dass er erst auf frame 2 springt und dann, wenn er wirklich anfängt zu spielen, erst weitergeht). Das kannst Du ja ganz einfach per onEnterFrame oder eleganter mit setInterval abfragen. Wenn dem so ist, dann löschst Du Deinen preloader Loop wieder, und startest sowohl den Videoexpertise Film als auch den Info-Film, bzw. letzterer hat ja eh gerade gestartet.

Den Videoexpertise Film würde ich allerdings bereits vorher fertig laden, weil zwei Filme streaming vorrauszuladen könnte knifflig werden, obwohl, wenn ich überlege eigentlich auch nicht so wild, Du kannst ja bei Deinem Videoexpertise Film die loadedFrames abfragen und schauen, ob der abzuspielende Teil schon geladen ist.

Ich hoffe, jetzt habe ich zumindest mal verstanden, was Du machen willst ?!

Geändert von ghost23 (04-08-2003 um 08:30 Uhr)
ghost23 ist offline   Mit Zitat antworten
Alt 04-08-2003, 09:40   #14 (permalink)
funkdisziplin
 
Registriert seit: Jul 2003
Beiträge: 2.790
...der teufel ist ein eichhörnchen.

ja, mit setInterval würde ich den preroll der filme machen, vonwegen der angaben in milliseconds. bei dsl dürfte der preroll so um die 10000 milliseconds pro film sein.

das wirklich problematische bei der ganzen sache ist doch,

der user hat seine begrenzte bandbreite zum laden bzw. streamen der daten und diese darf natürlich auf keinen fall überschritten werden. jetzt stell dir vor videoexpertise.swf ist eine dicke data, die jeweiligen info.swf variieren in ihrer datenmenge. da wird es schwierig. das riecht nach dynamischer (im moment zur verfügung stehender) bandbreitenermittlung und dynamischer ermittlung der datenmenge der unterschiedlichen swf, von wegen ladekombinationsmöglichkeiten.

problem no.2:
im videoexpertise.swf wird ja auch nonlinear geladen. angenommen der experte redet über autos/fahrwerk sagen wir mal das würde mit frame 250 beginnen.
durch das nonlineare navigationsverhalten des users, der jetzt lieber etwas über autos/getriebe wissen möchte, wird der playhead zu frame 786 geschickt. so müsste jedesmal ein neuer (eventuell anders verteilter) preroll starten...

greets ddd

p.s. ich denke gerade in diesem interessanten punkt, der einbindung von video.swf in einen flashapplication gibt es noch nicht allzuviel. wäre doch toll wenn man in größerem team mehr infos zusammentragen könnte

Geändert von derdiedas (04-08-2003 um 09:42 Uhr)
derdiedas ist offline   Mit Zitat antworten
Alt 04-08-2003, 09:55   #15 (permalink)
Entwickler
 
Registriert seit: May 2003
Beiträge: 80
hallo,

verstehe noch nicht so ganz, was bei unterschiedlich grossen video dateien schwierig ist. Dass der Nutzer warten muss, bis daten geladen sind, ist ja von vornherein klar, es sei denn, du lädst in einer früheren phase schon alles vor, was wohl nicht in frage kommt.

ansonsten denke ich, führt kein weg daran vorbei, zunächst meinestwegen den videoexpertise so vorzuladen, bis der abschnitt geladen ist, den der user sich gerade ansehen will, wobei man hier überlegen sollte, auch diesen grossen videoexpertise.swf in einzelne teile zu spalten, damit, wenn der user als erstes den letzten teil sehen will, nicht erst der ganze film geladen werden muss.

wenn du nun also einen videoexpertiseteilfilm.swf und einen info film laden willst, dann startest du eben für beide filme den loadmovie. sobald der erste film abspielen will(hatten wir eben mit _currentframe und so weiter), dann stelltst Du ihn auf stop(). wenn der zweite film abspielen will, stellst du den ersten wieder auf play und alles ist in butter?

ODER ?????!!!!!!

Das da jedesmal zwischengeladen werden muss, wirst du nicht vermeiden können.
ghost23 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 08:36 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele