2010-12-08 8 views
1

Arbeiten an einer "video heavy" Flash-Site mit einem Intro-Video. Während das Intro-Video abgespielt wird, sollten Assets (Bilder, FLV-Dateien) im Hintergrund geladen werden. Das Problem ist, dass während des Ladens der Assets das Intro-Videospiel nervös wird.Wie kann ich FLV-Video beim Laden von Assets im Hintergrund flüssig wiedergeben?

Was kann ich tun, damit das Video beim Laden der Assets reibungslos wiedergegeben wird?

Es könnte die Single-Thread-Art von ActionScript, nicht sicher sein. Jeder Vorschlag würde helfen.

Nach der Verwendung von @Demian Brecht vorgeschlagene Methode, habe ich festgestellt, dass der Schuldige Speicherzuweisung sein könnte. Wenn die FLVs geladen werden, steigt die Speicherauslastung um ~ 266MB und während die Videos in den Speicher geschrieben werden, fällt die Framerate auf 1FPS.

Ich stelle mir vor, ich könnte zuerst alle Videos laden und nachdem sie im Speicher sind, könnte das Intro-Video angezeigt werden, aber im Idealfall würde ich eine Art Workaround benötigen, um den Rest der Videos zu laden, während das Intro abgespielt wird.

Hinweise?

Antwort

2

AFAIK, es gibt keine "nette" Möglichkeit, Ihr Problem gut zu lösen, da Sie, wie Sie bereits erwähnt haben, auf die single-threaded Art von ActionScript zurückgreifen.

Ich würde vielleicht Ihr Video bewegen, um zu beginnen, in einem Post-Asset-Ladezustand zu spielen und sich beim Laden auf eine gute alte Fortschrittsleiste verlassen.

Ein rein theoretisches Denken ...

Was ist, wenn Sie auf einer Seite zwei eingebettete swf hatten, ein versteckte und man den Intro-Film zu spielen? Durch JavaScript/Flash-Interop können Sie beginnen, die Assets in Ihrem versteckten swf zu laden, sobald das Intro-Video startet (und Status-Updates abrufen).

Natürlich könnten Sie nicht die Filme aus dem sichtbaren swf direkt zugreifen, aber sobald Laden fertig ist, die Filme sollen vom Browser zwischengespeichert werden und sollte zur Verfügung stehen sofort auf Anfrage ...

Noch einmal, nur ein Gedanke - habe selbst nichts dergleichen versucht.

+0

"So verrückt könnte es einfach funktionieren" :) Ich werde es am Morgen mit den richtigen Dateien versuchen. Nicht die einfachste Lösung, aber könnte funktionieren. –

+0

Bitte posten Sie Ihre Ergebnisse, wenn Sie es versuchen. Ich bezweifle stark, dass ich eine Chance haben werde, es selbst auszuprobieren, und ich bin jetzt wirklich neugierig zu wissen, ob es funktionieren würde oder nicht :) –

+0

Sorry, aber es funktioniert nicht :(Ich hatte zwei swfs: 1 dass hatte eine FLVPlayback-Komponente, die 1 flv spielte und eine LocalConnection als Empfänger einrichtete und eine andere, die 6 FLV-Dateien mit LoaderMax geladen und eine Nachricht über Local Connection gesendet hat.Die Framerate auf der ersten swf fällt von 30 auf 1FPS Ich habe auch eine andere swf erstellt hatte gerade mr.doobs Stats in und bekam das gleiche Verhalten (Drop auf 1FPS). Es könnte der Speicher sein. Der Speicher beginnt mit 116, aber wenn die Videos einspringen geht es bis zu 384. Es dauert ein paar Sekunden nach dem Laden fertig für die Bildwiederholrate, um zum normalen (30FPS) zurückzukehren –

0

Haben Sie versucht, die Pufferzeit zu erhöhen, oder glauben Sie, dass das Laden Systemressourcen einschränkt?

+0

Ich habe nicht versucht, die Pufferzeit zu erhöhen, aber ich denke, das Laden im Hintergrund begrenzt die Ressourcen, da ich bisher nur lokal getestet habe. –

Verwandte Themen