Hi Chris,

In VideoDisplay, you can subscribe to "playheadUpdate" event and use playheadTime, which is similar to NetStream.time.

You can subscribe to "stateChange" event and watch "BUFFERING" in event handler, if you want to show BUFFERING status to user...

-abdul


On 8/30/06, Chris Simeone <[EMAIL PROTECTED]> wrote:

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 flexcoders@yahoogroups.com, "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 flexcoders@yahoogroups.com, "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





SPONSORED LINKS
Software development tool Software development Software development services
Home design software Software development company


YAHOO! GROUPS LINKS




__,_._,___

Reply via email to