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/
 


Reply via email to