Awesome!!! Worked perfectly. Thank You. With all this in mind, is there a way to pull this of using the <mx:videoDisplay> component?
I created my app using that component but I could not figure out how to access the stream. I figured I would do a rewrite using the netStream object if necessary, but I would love to avoid doing that if possible. Thanks Again, Chris --- In [email protected], "Michael Ritchie" <[EMAIL PROTECTED]> wrote: > > Abdul is correct, you need to get the netstream time, use the > following code for your enterframe function: > > private function onEnterFrame(event:Event):void > { > if(stream == null) return; > var loadpct:Number = stream.bytesLoaded / > stream.bytesTotal * 100; > trace("onEnterFrame: " + event + " Loaded: " + > stream.time + "%"); > } > > stream.time will return the % > > - mr > > --- In [email protected], "Abdul Qabiz" <abdul.qabiz@> wrote: > > > > Hi, > > > > bytesTotal and bytesLoaded are used when you use progressive flv > download. > > In case of streaming (via FMS/FCS), > > your actual file is not downloaded rather bits are streamed over > pipe.... > > > > To show buffer progress, you can use NetStream's bufferLength and > bufferTime > > properties instead of bytesTotal/bytesLoaded. > > > > -abdul > > > > > > > > On 8/30/06, Chris Simeone <simspace@> wrote: > > > > > > Hi All, > > > > > > I've been trying to create a "Buffering" progress bar for streaming > > > FLV (via FMS) with the <mx:videoDisplay> component. But, the > > > videoDisplay is not firing "progress" events for some odd reason. So I > > > changed my strategy and started using the netStream object. > > > > > > The video is streaming via FMS, but the netStream "bytesLoaded" and > > > "bytesTotal" properties are always zero. Any ideas what I may be doing > > > wrong. The code's below. > > > > > > Also, it would be great if anyone can show how to pull this of with > > > the <mx:videoDisplay> component as well!!! > > > > > > Thanks! > > > Chris > > > > > > <?xml version="1.0" encoding="utf-8"?> > > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" > > > layout="vertical" horizontalAlign="left" > > > creationComplete="onCreationComplete();"> > > > <mx:Script> > > > <![CDATA[ > > > > > > > ////////////////////////////////////////////////////////////////////////// > > > import mx.events.VideoEvent; > > > import myComponents.*; > > > import flash.events.*; > > > import flash.net.*; > > > import flash.media.Video; > > > import mx.controls.*; > > > import mx.core.UIComponent; > > > > > > > ////////////////////////////////////////////////////////////////////////// > > > private var nc:NetConnection; > > > private var stream:NetStream; > > > private var fmsUrl:String; > > > private var flvName:String; > > > private var video:Video; > > > private var loaded_interval:Number; > > > > > > > ////////////////////////////////////////////////////////////////////////// > > > NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0; > > > > > > > ////////////////////////////////////////////////////////////////////////// > > > public function onCreationComplete():void > > > { > > > nc = new NetConnection(); > > > configureListeners(nc); > > > > > > var videoHolder:UIComponent = new UIComponent(); > > > videoHolder.setActualSize(700, 525); > > > > > > video = new Video(); > > > configureListeners(video); > > > > > > videoHolder.addChild(video); > > > video.x = 0; > > > video.y = 0; > > > > > > fmsUrl = "rtmp://localhost/test_video"; > > > flvName = "testVideo"; > > > theBox.addChild(videoHolder); > > > nc.connect(fmsUrl); > > > } > > > ///////////////////////////////////////////////////////////// > > > private function configureListeners(dispatcher:IEventDispatcher):void > > > { > > > dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, > > > onSecurityError); > > > dispatcher.addEventListener(AsyncErrorEvent.ASYNC_ERROR, > onAsyncError); > > > dispatcher.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus); > > > dispatcher.addEventListener(ProgressEvent.PROGRESS, onProgress); > > > dispatcher.addEventListener(Event.ENTER_FRAME, onEnterFrame); > > > } > > > ///////////////////////////////////////////////////////////// > > > private function connectStream():void > > > { > > > if (stream) > > > stream.close(); > > > > > > stream = new NetStream(nc); > > > configureListeners(stream); > > > video.attachNetStream(stream); > > > stream.bufferTime = 10; > > > stream.play(flvName); > > > stream.client = this; > > > } > > > ///////////////////////////////////////////////////////////// > > > private function onNetStatus(event:NetStatusEvent):void > > > { > > > trace("onNetStatus: " + event); > > > switch (event.info.code) > > > { > > > case "NetConnection.Connect.Success": > > > trace("NetConnection.Connect.Success"); > > > connectStream(); > > > break; > > > case "NetConnection.Connect.Failed": > > > trace("NetConnection.Connect.Failed"); > > > break; > > > case "NetStream.Buffer.Empty": > > > trace("NetStream.Buffer.Empty"); > > > break; > > > case "NetStream.Buffer.Full": > > > trace("NetStream.Buffer.Full"); > > > break; > > > case "NetStream.Play.StreamNotFound": > > > trace("stream not found: " + flvName); > > > break; > > > } > > > } > > > ///////////////////////////////////////////////////////////// > > > private function onEnterFrame(event:Event):void > > > { > > > if(stream == null) return; > > > var loadpct:Number = stream.bytesLoaded / stream.bytesTotal * 100; > > > trace("onEnterFrame: " + event + " Loaded: " + loadpct + "%"); > > > } > > > ///////////////////////////////////////////////////////////// > > > private function onProgress(event:ProgressEvent):void > > > { > > > trace("onProgress: " + event); > > > } > > > ///////////////////////////////////////////////////////////// > > > private function onSecurityError(event:SecurityErrorEvent):void > > > { > > > trace("onSecurityError: " + event); > > > } > > > ///////////////////////////////////////////////////////////// > > > private function onAsyncError(event:AsyncErrorEvent):void > > > { > > > trace("onAsyncError: " + event); > > > } > > > ///////////////////////////////////////////////////////////// > > > public function onMetaData(info:Object):void > > > { > > > trace("metadata: duration=" + info.duration + " width=" + > > > info.width + " height=" + info.height + " framerate=" + > info.framerate); > > > } > > > ///////////////////////////////////////////////////////////// > > > public function onCuePoint(info:Object):void > > > { > > > trace("cuepoint: time=" + info.time + " name=" + info.name + " > > > type=" + info.type); > > > } > > > ///////////////////////////////////////////////////////////// > > > public function showMessage(msg:String):void > > > { > > > trace("showMessage: " + msg + "\n"); > > > } > > > ///////////////////////////////////////////////////////////// > > > ]]> > > > </mx:Script> > > > > > > <mx:HBox id="theBox" borderStyle="solid"></mx:HBox> > > > </mx:Application> > > > > > > > > > > > > -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/

