Jun 4, 2008
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
Loren Norman
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!
Jun 27th, 2008
Reply to “Minimum Code to Record FLV File”