Preloader für FLV-Stream!

poli-dori

Erfahrenes Mitglied
Hi, ich bin verzweifelt!
ich suche eineM Preloader für einen Flv-Stream. Ich möchte ihn haben, damit der Bildschirm nicht zu lange "schwarz" bleibt bis das Video startet. Zudem soll das Video erst starten nachdem genug Daten gestreamt wurden, damit es einwandtfrei und ohne stocken läuft!
Ich weiß wie man einen normalen preloader baut, aber hierfür scheint es anders zu funktionieren und ich checks nicht!

bitte helft mir... :confused:
 
Hi,

mit NetStream.bytesLoaded und NetStream.bytesTotal bekommst Du die heruntergeladenen Bytes in Relation zur Gesamtlänge des Films (zum Preloaden nicht geeignet, aber eine sinnvolle Anzeige). Um den aktuellen Status des Wiedergabepuffers auszugeben, verwende die Eigenschaften NetStream.bufferTime und NetStream.bufferLength:
Code:
var percent = my_stream.bufferLength * 100 / my_stream.bufferTime;
trace(percent + " Bytes vorgeladen...");

Um eine ruckelfreie Wiedergabe zu gewährleisten musst Du ggf. die Buffergröße mit "setBufferTime" erhöhen (der Standardwert liegt bei 0.1 Sekunden):
Code:
my_stream.setBufferTime(2)
// Setzt bufferTime auf 2 Sekunden

Gruß
.
 
Hi,
danke für die schnelle antwort! Mit dieser Methode bekomme ich imer 0 als Wert.
PHP:
var percent = streaming.bufferLength * 100 / streaming.bufferTime;
trace(percent + " Bytes vorgeladen...");
 
trace(streaming.bufferLength);// ergibt 0
trace(streaming.bufferTime);// ergibt 2
trace(streaming.bytesLoaded);// ergibt 0
trace(streaming.bytesTotal);// ergibt -1?

Mache ich da was Flasch? Ich verstehe diese WErte nicht!
 
Zuletzt bearbeitet:
PHP:
trace(streaming.bufferLength);// ergibt 0
Das ist klar - am Anfang ist ja auch noch nichts drinne. ;) Du musst diese gesamte Abfrage kontinuierlich ausführen (also z.B. in einer onEnterFrame-Methode):
Code:
this.onEnterFrame = function() {
    var percent = streaming.bufferLength * 100 / streaming.bufferTime;
    trace(percent + " Bytes vorgeladen...");
    if (percent >= 100) delete this.onEnterFrame;
}

Gruß

P.S.: Auf meiner Seite (http://www.ekto.net) findest Du inzwischen drei verschiedene FLV-Player zum Herunterladen, die alle mit diesen Werten arbeiten. Vielleicht helfen Dir diese Vorlagen etwas weiter.
.
 
Hi,
danke für deine Hilfe. Ich habe mir deine Player angeschaut, aber das AS ist eine Nummer zu komplex für mich... :(
Ich möchte bloß einen Statusbalken der mir anzeigt wieviel vorausgeladen wird und wievielgeladen wurde bzw an welcher Stelle sich der der Film gerade befindet. Ganz einfach mit einfachen, auch für mich noch verständlichen AS...

Besteht eigentlich eine einfache Möglichkeit zu gewähreleisten, dass der Film erst dann abgespielt wird, wenn genug Daten geladen wurden, damit er nicht stockt?

Bitte helft mir, sonst kann ich ein Projekt nicht mehr abschliessen...:confused:
 
Ganz einfach mit einfachen, auch für mich noch verständlichen AS...
Nicht jede Aufgabe lässt sich mit beliebig einfachen Mitteln lösen... ;) Im Anhang findest Du das einfachste Beispiel, das ich zustande bringe.

Das "ruckelfreie" Abspielen gewährleistest Du wie gesagt über die BufferTime. Um dynamisch herauszufinden, welche Zwischenspeicherzeit Du jeweils einstellen musst, brauchst Du zusätzlich einen "Bandbreitenprofiler", der die Verbindungsgeschwindigkeit des Benutzers testet. Auch das ist kein ganz einfaches AS, aber hier im Forum wurde das Thema schon mal behandelt. Schau mal hier: http://www.tutorials.de/tutorials202686.html&highlight=bandbreite oder auch hier: http://www.tutorials.de/tutorials214545.html&highlight=geschwindigkeit

Wenn Du auch mit der Videolänge arbeiten willst, musst Du Metadaten im Film unterbringen und in Flash auslesen (wie auf meiner Seite erwähnt und im Sammelthread etwas ausführlicher beschrieben) - ganz einfach ist aber auch das nicht.

Gruß
.
 

Anhänge

Zurück