天天看點

fms系列5 時時視訊聊天

http://www.cnblogs.com/beniao/archive/2009/04/28/1444159.html

package

{

    import flash.net. * ;

    import flash.events. * ;

    import flash.display. * ;

    import flash.media. * ;

    import fl.controls. * ;

     public   class  PublishStream extends Sprite

    {

         private  var video:Video;

         private  var nc:NetConnection;

         private  var ns:NetStream;

         private  var cam:Camera;

         private  var mic:Microphone;

         public  function PublishStream(): void

        {

            btnPublish.label = " 釋出視訊 " ;

            btnPublish.addEventListener(MouseEvent.CLICK,onPublishClick);

             // 擷取視訊和聲音,并将視訊顯示到Flash界面

            cam  =  Camera.getCamera();

            mic  =  Microphone.getMicrophone();

            video  =   new  Video( 320 , 240 );

            video.attachCamera(cam);

            video.x = 20 ;

            video.y = 20 ;

            addChild(video);

        }

         private  function onPublishClick(evt:MouseEvent): void

        {

            nc  =   new  NetConnection();

            nc.connect( " rtmp://localhost/LiveStreams " );

            nc.addEventListener(NetStatusEvent.NET_STATUS,onNetStatusHandler);

        }

         private  function onNetStatusHandler(evt:NetStatusEvent): void

        {

            trace(evt.info.code);

             if (evt.info.code == " NetConnection.Connect.Success " )

            {

                ns = new  NetStream(nc);

                ns.addEventListener(NetStatusEvent.NET_STATUS,onNetStatusHandler);

                ns.client = new  CustomClient();

                ns.attachCamera(cam);

                ns.attachAudio(mic);

                ns.publish(txtInput.text, " live " );

            }

        }

    }

}

------------------------------------

以上是視訊釋出端的代碼。顯示定義擷取cam,mic,video等,然後連接配接到程式,然後定義ns,最後是publish出來,多了個live,表示是時時的,是以不會在對應目錄下儲存該視訊片段。

=================================

package

{

    import flash.net.*;

    import flash.events.*;

    import flash.display.*;

    import flash.media.*;

    public class LiveStream extends Sprite

    {

        private var video:Video;

        private var nc:NetConnection;

        private var ns:NetStream;

        public function LiveStream():void

        {

            nc = new NetConnection();

            nc.connect("rtmp://localhost/LiveStreams");

            nc.addEventListener(NetStatusEvent.NET_STATUS,onNetStatusHandler);

        }

        private function onNetStatusHandler(evt:NetStatusEvent):void

        {

            if(evt.info.code=="NetConnection.Connect.Success")

            {

                ns=new NetStream(nc);

                ns.addEventListener(NetStatusEvent.NET_STATUS,onNetStatusHandler);

                ns.client=new CustomClient();

                video=new Video();

                video.attachNetStream(ns);

                ns.play("1111");//1111為流的名字,對應于視訊流釋出端的publish("1111","live").

                addChild(video);

            }

        }

    }

}

---------------------------------

與之前的代碼很相似,這邊是play 1111,是以在釋出端的文本輸入框中也該輸入1111.

FMS