title: Adobe record sound and save
body: <p>In the following code i am trying to save the microphone contents to a file.The saved file doesn't play and Every time the file is saved  i see that the size is only of 10 bytes only.What am i doing wrong in the code.Can someone please show me the correct code to save it .And the saved file should play the recorded contents accordingly.</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
             xmlns:s="library://ns.adobe.com/flex/spark" 
             xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"&gt;
  &lt;fx:Script&gt;
      &lt;![CDATA[
          import flash.events.SampleDataEvent; 
          import flash.media.Microphone;
          import flash.net.FileReference;
          import mx.controls.Alert;
          import flash.net.FileReference;
          import flash.display.Sprite;
          import flash.media.Sound;
          import flash.utils.ByteArray;
          import flash.external.ExternalInterface;
  
  
  
  
          public var _file:FileReference = new FileReference();
          [Bindable] private var micList:Array;
          public var mic:Microphone = Microphone.getMicrophone();
          protected var isRecording:Boolean = false;
  
          protected function startMicRecording():void 
          { 
              //var mic:Microphone = Microphone.getMicrophone();
              mic.gain = 60;
              mic.rate = 11;
              mic.setUseEchoSuppression(true);
              mic.setLoopBack(true);
              mic.setSilenceLevel(5, 1000);
              Alert.show("In recording");
              isRecording = true;
              mic.addEventListener(SampleDataEvent.SAMPLE_DATA, gotMicData);
  
          }
  
          protected function stopMicRecording():void 
          { 
  
  
              //isRecording = false;
  
              try{
              //_file.save( SampleDataEvent.SAMPLE_DATA, "recorded.wav" );
                  _file.save(SampleDataEvent.SAMPLE_DATA , "recorded.flv" );
              }
              catch(e:Error)
              {
                  Alert.show("In Stopmicrecording"+e);
              }
  
          }
  
          private function gotMicData(micData:SampleDataEvent):void 
          { 
  
              //mic.removeEventListener(SampleDataEvent.SAMPLE_DATA, gotMicData);
  
          }
  
  
          protected var soundRecording:ByteArray;
          protected var soundOutput:Sound;
          protected function playbackData():void 
          { 
  
  
  
          } 
  
          private function playSound(soundOutput:SampleDataEvent):void
          {
  
          }
  
  
  
  
  
  
  
      ]]&gt;
  &lt;/fx:Script&gt;
  &lt;fx:Declarations&gt;
      &lt;!-- Place non-visual elements (e.g., services, value objects) here --&gt;
  &lt;/fx:Declarations&gt;
  &lt;mx:ComboBox x="150" id="comboMicList" dataProvider="{micList}" /&gt;
  &lt;mx:Button x="250" id="startmicrec" label="Start Rec" click="startMicRecording()"/&gt;
  &lt;mx:Button x="350" id="stopmicrec" label="Stop Rec" click="stopMicRecording()"/&gt; 
  &lt;!--&lt;mx:Button x="50" id="setupmic" label="Select Mic" click="setupMicrophone()"/&gt;--&gt;
  &lt;mx:Button x="450" id="playrecsound" label="Play sound" click="playbackData()"/&gt;
  
   &lt;/s:Application&gt;
  </code></pre>