Marcio Rosa Website

Avatar

Marcio Rosa Interaction Architect.

Minimum Code to Record FLV File

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 ();
          }
    }
}

One Comment, Comment or Ping

  1. Brilliant! Straight to the point, and perfectly illustrates everything i need, even as an ActionScript newbie.

    Can you talk a little bit about the server side? What infrastructure do you have to have set up on the server to receive this? I’m trying to get set up with Red5, but it looks like this code just writes to a file without even needing a server side process to tell it what to do. How do i exercise more control?

    Thanks!

Reply to “Minimum Code to Record FLV File”

Before you go

Going so soon? May these links be a guide to web project.