title: Record live audio from mic input and save simultanously
body: <p>I was trying to develop a Voice recorder in C#. I have tried many ways, like  NAudio, DirectX, Microsoft.Xna.Framework.Audio, etc.</p>
  
  <p>Everything gives the same result. After we stop the recording, the output file mp3/wav get saved.</p>
  
  <p>The mp3/wav file get created at the beginning itself (without and content - 0 bytes)</p>
  
  <p>I am trying to create an application which can save audio live/simultaneously.</p>
  
  <pre><code>    private void StartRecording() {
          this.WaveSource = new WaveInEvent { WaveFormat = new WaveFormat(44100, 1) };
  
          this.WaveSource.DataAvailable += this.WaveSourceDataAvailable;
          this.WaveSource.RecordingStopped += this.WaveSourceRecordingStopped;
  
          this.WaveFile = new WaveFileWriter(@"C:\Sample.wav", this.WaveSource.WaveFormat);
  
          this.WaveSource.StartRecording();
      }
  
      private void StopRecording() {
          this.WaveSource.StopRecording();
      }
  
      void WaveSourceDataAvailable(object sender, WaveInEventArgs e) {
          if (this.WaveFile != null) {
              this.WaveFile.Write(e.Buffer, 0, e.BytesRecorded);
              this.WaveFile.Flush();
          }
      }
  
      void WaveSourceRecordingStopped(object sender, StoppedEventArgs e) {
          if (this.WaveSource != null) {
              this.WaveSource.Dispose();
              this.WaveSource = null;
          }
  
          if (this.WaveFile != null) {
              this.WaveFile.Dispose();
              this.WaveFile = null;
          }
      }
  </code></pre>