Hi!
I am currently trying to create a smooth Video Wall using Away3DLite
(Haxe version).
Everything works fine but each time I start a video, my framerate drop
from 40 to 15 FPS.
Clearly this is related to the FLV or NetStreamer startup time.
I know this is not directly Away3D related but as the community is
very realtime oriented, I wonder if some of you guys have an idea how
I could start a video without impacting the framerate so much or even
if something has been abstracted in the Away3D Engine.


I'm a total noub at Flash (1 month experience)
Below is the HaXe code to play the video.
Any input, any time :)
Big thanks!
Stéphane

class PlaneVideo {
        public var plane : Plane;
        var screen : Video;
        var stream : NetStream;
        var sprite : Sprite;
        var canceled : Bool;

        public function new(url : String) {
                canceled = false;

                var planeSize = new Point(320, 320);
                planeSize.normalize(320);

                sprite = new Sprite();
                plane = new Plane(new MovieMaterial(sprite), planeSize.x,
planeSize.y, 1, 1, false);

                screen = new Video();
                screen.cacheAsBitmap = true;

                var connection = new NetConnection();
                connection.connect(null);
                stream = new NetStream(connection);

                var thiz = this;
                stream.client = {
                        onMetaData : function (infoObject) {
                                if (!thiz.canceled) {
                                        var width = 
Std.parseInt(infoObject.width);
                                        var height = 
Std.parseInt(infoObject.height);

                                        var coefX = planeSize.x /  width;
                                        var coefY = planeSize.y / height;
                                        var coef = coefY.min(coefX);

                                        thiz.screen.width = width * coef;
                                        thiz.screen.height = height * coef;
                                        thiz.sprite.addChild(thiz.screen);
                                }
                        }
                };

                screen.attachNetStream(stream);
                stream.bufferTime = 1;
                stream.checkPolicyFile = false;
                stream.play(url);
        }

        public function stop() : Void {
                canceled = true;
                plane.parent.removeChild(plane);
                if (sprite.contains(screen)) {
                        sprite.removeChild(screen);
                }
                screen.clear();
                stream.close();
        }
}

P.S.:  (Vids are 160x120, lowess possible bitrate); I am currently
playing 18 of them simultaneously.

Reply via email to