Minimum Code to Record FLV File

June 4th, 2008 posted by Marcio Rosa
package
{
    import fl.controls.Button;
    import fl.controls.TextInput;
    import flash.display.Sprite;
    import flash.net.NetConnection;
    import flash.net.NetStream;
    import flash.events.NetStatusEvent;
    import flash.events.MouseEvent;
    import flash.events.Event;
    //import flash.net.ObjectEncoding;
    import flash.media.Camera;
    import flash.media.Microphone;
    import flash.media.Video;
 
    public class MinRecord extends Sprite
    {
          private var nc:NetConnection;
          private var ns:NetStream;
          private var rtmpNow:String;
          private var msg:Boolean;
          private var cam:Camera;
          private var mic:Microphone;
          private var vid1:Video;
          private var recordBtn:Button;
          private var stopBtn:Button;
          private var textInput:TextInput;
 
          //Constructor
          function MinRecord ()
          {
               //NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;
               nc=new NetConnection();
               nc.addEventListener (NetStatusEvent.NET_STATUS,checkConnect);
               rtmpNow="rtmp://192.168.0.11/vid2/recordings";
               //rtmpNow="rtmp:/vid2";
               nc.connect (rtmpNow);
               addMedia ();
               addUI ();
               recordBtn.addEventListener (MouseEvent.CLICK,startRecord);
               stopBtn.addEventListener (MouseEvent.CLICK,stopRecord);
          }
 
          private function addMedia ():void
          {
               cam=Camera.getCamera();
               cam.setMode (240,180,24);
               cam.setQuality (0,90);
               mic=Microphone.getMicrophone();
               vid1=new Video(cam.width,cam.height);
               vid1.attachCamera (cam);
               addChild (vid1);
               vid1.x=100;
               vid1.y=50;
          }
 
          private function addUI ():void
          {
               recordBtn=new Button();
               recordBtn.label="Record";
               recordBtn.x=100;
               recordBtn.y=50+(cam.height) +5;
               recordBtn.width=70;
               addChild (recordBtn);
               stopBtn=new Button();
               stopBtn.label="Stop Record";
               stopBtn.x=recordBtn.x+85;
               stopBtn.y=recordBtn.y;
               stopBtn.width=75;
               addChild (stopBtn);
               textInput=new TextInput();
               textInput.x=recordBtn.x;
               textInput.y=recordBtn.y + 30;
               addChild (textInput);
          }
 
          private function checkConnect (e:NetStatusEvent):void
          {
               msg=(e.info.code=="NetConnection.Connect.Success");
               if (msg)
               {
                     ns = new NetStream(nc);
               }
          }
 
          private function startRecord (e:Event):void
          {
               if (ns)
               {
                     recordBtn.label="Recording";
                     ns.attachAudio (mic);
                     ns.attachCamera (cam);
                     ns.publish (textInput.text,"record");
               }
          }
 
          private function stopRecord (e:Event):void
          {
               recordBtn.label="Record";
               ns.close ();
          }
    }
}