使用Flash Media Server的网络摄像头池

时间:2011-07-28 07:36:18

标签: flash media flash-media-server

我正在尝试做一些非常简单的事情,并希望有人能指出我一个快速的解决方案。

我有一个应用程序,用户可以登录并连接到Flash媒体服务器。连接后,任何人都可以查看他们的网络摄像头。

例如,假设Bob和Sally登录网站,他们的相机现在正在流式传输。 Bob可以在http://www.example.com?cam=sally查看Sally的网络摄像头流,Sally可以在http://www.example.com?cam=bob查看Bob的网络摄像头流

我相信这很容易,你们可以提供帮助。

拜托,这很紧急,我在等......

祝你好运, 诺曼。

1 个答案:

答案 0 :(得分:0)

使用此代码将网络摄像头流广播到FMS:

    var nc : NetConnection = new NetConnection( );
        nc.client = this;
        nc.addEventListener(NetStatusEvent.NET_STATUS, statusHandler );
        nc.connect( "rtmp://your-fms-server-url/your-application" );

    var cam : Camera = Camera.getCamera( );
        cam.setMode( 640, 480, 20 );

    var ns : NetStream;

    function statusHandler ( eventOBJ : NetStatusEvent )
    {
        if ( eventOBJ.info.code == "NetConnection.Connect.Success" )
        {
            ns = new NetStream( nc );
            ns.attachCamera( cam );
            ns.publish( "your-stream-name" );
        }
    };

接收器很简单,除了几行:

    // to the declaration section:
    var video : Video = new Video( );

    // code in the statusHandler method:
    if ( eventOBJ.info.code == "NetConnection.Connect.Success" )
    {
        ns = new NetStream( nc );
        ns.play( "your-stream-name", -1 );
        video.attachNetStream( ns );    
        addChild( video );
    }

您只需在flashvars中传递所需流的名称即可。 例如,如果您使用此URL:www.yourdomain.com/chat.php?cam = Sally,在这种情况下将cam参数传递给SWF客户端,并使用以下格式:

    ns.play( this.loaderInfo.parameters.cam , -1 );