I also would suggest tracing out the value of event.info in the public
function netStatusHandler().

Simply do a for in loop on that object and trace out all the elements.

What does that show?

On 5/22/07, Chris Allen <[EMAIL PROTECTED]> wrote:
> Lenny,
>
> Is Red5 logging any errors when you run this? I haven't had time yet
> to try it out, but from looking at it here in my email it looks
> correct.
>
> Let us know some more info and perhaps we can help.
>
> BTW, this line is not needed by Red5 as it supports AMF3, unlike FMS:
> nc.objectEncoding = ObjectEncoding.AMF0 ;
>
> -Chris
>
>
> On 5/20/07, Lenny Sorey <[EMAIL PROTECTED]> wrote:
> > Hello All,
> >
> > Got a question about a Flex/FMS tutorial I am trying to use as a learning
> > guide in RED5.
> >
> > The example viewed is at :
> >
> > http://renaun.com/flex2/fms/VideoConferenceWDDJ/FlexVideoMain.html
> >
> >
> >
> > The code for this example is at:
> > http://renaun.com/flex2/fms/VideoConferenceWDDJ/srcview/
> >
> > Im not using the asc code as this is being called in my application.java for
> > just connection.
> > I used this one because it appears to be pretty simple as far as a straight
> > forward Shared Object example.
> >
> > Can someone take a look at this and give me some guidance? I am not making
> > it to me Application.class file and am not connecting
> > to the client.
> >
> > Any responses are appreciated.
> >
> > Regards,
> >
> > Lenny
> >
> > I set up a new webapp for this example in red5 as videoconf
> >
> > I setup my application.java as follows:
> >
> > ******************************************************************************************************************************
> >
> >
> > package org.red5.server.webapp.videoconf;
> >
> > import org.apache.commons.logging.Log;
> > import org.apache.commons.logging.LogFactory;
> > import org.red5.server.adapter.ApplicationAdapter;
> > import org.red5.server.api.IBandwidthConfigure;
> > import org.red5.server.api.IConnection ;
> > import org.red5.server.api.IScope;
> > //import org.red5.server.api.stream.IServerStream;
> > import org.red5.server.api.stream.IStreamCapableConnection;
> > import
> > org.red5.server.api.stream.support.SimpleConnectionBWConfig
> > ;
> > import org.red5.server.api.service.IPendingServiceCallback;
> > import org.red5.server.api.service.ServiceUtils;
> > import org.red5.server.api.so.ISharedObject;
> >
> > public class Application extends ApplicationAdapter {
> >
> > protected static Log log = LogFactory.getLog(Application.class.getName());
> >
> >  private IScope appScope;
> >     // private IServerStream serverStream;
> >
> >  /** [EMAIL PROTECTED] */
> >     @Override
> >  public boolean appStart(IScope app) {
> >   appScope = app;
> >   //add users
> >
> >   createSharedObject(appScope, "users_so", false);
> >   log.info("@Application.java: appStart is called.");
> >
> >   return true;
> >  }
> >
> >  /** [EMAIL PROTECTED] */
> >     @Override
> >  public boolean appConnect(IConnection conn, Object[] params) {
> >   // Trigger calling of "onBWDone", required for some FLV players
> >   measureBandwidth(conn);
> >
> >
> >
> >   //IScope myScope = Red5.getConnectionLocal().getScope();
> >
> >   ISharedObject users_so = getSharedObject(appScope, "users_so", false);
> >   log.debug("appConnect is called:  "+getSharedObject(appScope, "users_so",
> > false));
> >
> >
> >   return super.appConnect(conn, params);
> >  }
> >
> >  /** [EMAIL PROTECTED] */
> >     @Override
> >  public void appDisconnect(IConnection conn) {
> >
> >   super.appDisconnect (conn);
> >  }
> > }
> >
> >
> > /*The Flex Client Side*/
> >
> > <?xml version="1.0" encoding="utf-8"?>
> > <!--
> > Copyright 2006 Renaun Erickson (http://renaun.com )
> >
> > @ignore
> >
> >
> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
> >  xmlns="*"
> >  initialize="haveCamera = ( Camera.getCamera() != null )"
> >  layout="vertical" viewSourceURL="srcview/index.html">
> >  <mx:Script>
> >   <![CDATA[
> >    import mx.collections.ArrayCollection;
> >    import mx.controls.Alert ;
> >
> >    [Bindable]
> >    private var haveCamera:Boolean;
> >
> >    [Bindable]
> >    public var nc:NetConnection;
> >
> >    public var users_so:SharedObject;
> >    [Bindable]
> >    public var dpUsers:ArrayCollection;
> >
> >    /**
> >     *  This function creates the FMS connection and sets the Status event
> > handler
> >     */
> >    public function createConnection():void
> >    {
> >     //Logger.debug( "MAIN:createConnection" );
> >     // Check the user name length
> >     if( txtName.text.length > 0 ) {
> >      // Create Connection and setup Events
> >      nc = new NetConnection();
> >      nc.client = this;
> >      nc.objectEncoding = ObjectEncoding.AMF0 ;
> >      nc.addEventListener( NetStatusEvent.NET_STATUS, netStatusHandler );
> >      // A simple Identifier for the asc side
> >      var identifier:String = txtName.text;
> >      while( identifier.search( " " ) > 0 )
> >       identifier = identifier.replace( " ", "_" );
> >      nc.connect( "rtmp://10.2.0.10/videoconf", txtName.text, identifier );
> >     } else {
> >      Alert.show( "Please provide a name for the video chat connection!" );
> >     }
> >    }
> >
> >    /**
> >     * Waits for any status from the connection to FMS
> >     */
> >    public function netStatusHandler( event:NetStatusEvent ):void
> >    {
> >     //Logger.debug( "MAIN:connectionSuccess:Success" );
> >     switch( event.info.code ) {
> >      case "NetConnection.Connect.Success ":
> >       clientID = nc.clientID;
> >       // Connection succeeded now create components
> >       connectComponents();
> >       // Change to Video view
> >       vsMain.selectedChild = pnlVideo;
> >      break;
> >      case "NetConnection.Connect.Rejected":
> >       Alert.show( "The number of users has been limited for this demo,
> > please try again in a few minutes.", "Restricted Usage" );
> >      break;
> >     }
> >
> >    }
> >
> >    /**
> >     * Method called to create the components
> >     */
> >    public function connectComponents():void
> >    {
> >     //Logger.debug( "MAIN:connectComponents" );
> >     // Simple User shared object and event handling
> >     SharedObject.defaultObjectEncoding  =
> > flash.net.ObjectEncoding.AMF0;
> >     users_so = SharedObject.getRemote("users_so", nc.uri, false);
> >     users_so.addEventListener( SyncEvent.SYNC, usersSyncHandler );
> >     users_so.connect( nc );
> >    }
> >
> >    /**
> >     * Listens for any change to the users shared object
> >     */
> >    public function usersSyncHandler( event:SyncEvent ):void
> >    {
> >     //Logger.debug( "MAIN:usersSyncHandler" + event.target.data );
> >     var results:Object = event.target.data;
> >     var usersArray:Array = new Array();
> >     for( var a:String in results ) {
> >      var obj:Object = new Object();
> >       obj.name = results[ a ];
> >      obj.identifier = a;
> >      usersArray.push( obj );
> >     }
> >     dpUsers = new ArrayCollection( usersArray );
> >    }
> >
> >    /**
> >     * Closes connections and handles the logout
> >     */
> >    public function logout():void
> >    {
> >    //Logger.debug( "MAIN:connectComponents" );
> >     users_so.close();
> >     nc.close();
> >      dpUsers = null;
> >     users_so = null;
> >     nc = null;
> >     vsMain.selectedChild = pnlLogin;
> >    }
> >
> >   ]]>
> >  </mx:Script>
> >
> >  <mx:ViewStack
> >   id="vsMain"
> >   width="100%" height="100%">
> >   <!-- Login Panel -->
> >   <mx:Panel
> >    id="pnlLogin"
> >    title="Red5, Flex and FMS Video Conference Demo">
> >    <mx:Form>
> >     <mx:FormItem label="Name:">
> >      <mx:TextInput
> >       id="txtName"
> >       enabled="{ haveCamera }" />
> >     </mx:FormItem>
> >     <mx:Button
> >      label="Submit"
> >      click="createConnection()"
> >      enabled="{ haveCamera }" />
> >     <mx:Label text="{ ( haveCamera ) ? '':'Now camera is found!' }" />
> >    </mx:Form>
> >   </mx:Panel>
> >   <!-- Video Panel -->
> >   <mx:Panel
> >    id="pnlVideo"
> >    width="100%" height="100%"
> >    title="Welcome { txtName.text }!"
> >    layout="vertical">
> >
> >    <mx:Tile
> >     height="100%" width="100%">
> >     <mx:Repeater
> >      id="rpUsers"
> >      dataProvider="{ dpUsers }">
> >      <VideoPod
> >       nc="{ nc }"
> >       isSender="{ rpUsers.currentItem.name == txtName.text }"
> >       userItem="{ rpUsers.currentItem }" />
> >     </mx:Repeater>
> >    </mx:Tile>
> >    <mx:Label
> >     width="100%"
> >     text="Video Quality is set really low to not use up all my bandwidth!"
> >     color="0xFF0000" />
> >    <mx:ControlBar>
> >     <mx:Button
> >      label="Logout"
> >      click="logout()"/>
> >    </mx:ControlBar>
> >   </mx:Panel>
> >
> >  </mx:ViewStack>
> >
> > </mx:Application>
> >
> >
> > /*End Flex client side */
> > _______________________________________________
> > Red5 mailing list
> > [email protected]
> > http://osflash.org/mailman/listinfo/red5_osflash.org
> >
> >
>

_______________________________________________
Red5 mailing list
[email protected]
http://osflash.org/mailman/listinfo/red5_osflash.org

Reply via email to