Minggu, 18 Maret 2012

Simple Audio Recording

Sesuai dengan judulnya, aplikasi ini berfungsi untuk merekam suara yang berasal dari audio input device seperti microphone atau semacamnya yang nantinya akan direkam dan disimpan menjadi file audio berekstensikan .wav. Saat pembuatan aplikasi ini, digunakan library NAudio yang difungsikan sebagai pengolah data mulai dari mendeteksi microphone sampai proses penyimpanan file hasil rekaman.
Dibawah ini adalah langkah-langkah dalam membuat aplikasi audio recording ini.

    1.  Buka Microsoft visual C# 2010 express, kemudian buat project baru  dengan memilih windows form application kemudian beri nama “Audio Recording”, lalu klik OK.

2. Pada jendela design, tambahkan 2 buah button. Untuk button1 ganti properties name nya dengan “btnRecord” dan properties text nya menjadi “Record”. Untuk button2, ganti properties name nya menjadi “btnStop”, dan properties text nya menjadi “Stop”.

     3.  Setelah itu, klik 2 kali pada form1 hingga nanti muncul jendela source code dimana kita membuat program untuk aplikasi audio recording dan kursor akan berada didalam fungsi form1_Load.
 
     4. Sebelum membuat program, sebaiknya kita menambahkan dahulu beberapa referensi dan library yang kita butuhkan, disini kita membutuhkan 3 file yaitu NAudio.dll, NAudioBufferReverse.cs dan NAudioSample.cs. Bagi yang belum memiliki ketiga file tersebut dapat langsung mendownload di sini.

    5.  Cara menambahkan NAudio.dll adalah dengan cara klik kanan pada “Reference” yang ada di Solution Explorer atau dengan cara memilih “Project >> Add reference…”.


Kemudian pada jendela Add Reference pilih tab browse, dan carilah lokasi dimana anda menyimpan file NAudio.dll, setelah ketemu pilih filenya kemudian klik OK.

 



      6. Setelah menambahkan NAudio.dll, sekarang tambahkan lagi file NAudioBufferReverse.cs dan NAudioSample.cs, dengan cara memilih “Project >> Add Existing Item…”. 


      Cari lokasi dimana anda menyimpan file tersebut, kemudian pilih dan tekan OK.

     7.   Langkah selanjutnya, mulai membuat program untuk aplikasi dengan mengkoneksikan library yang kita tambahkan tadi dengan aplikasi yang akan kita buat dengan cara :


using NAudio.Wave;
using AudioInterface;

 

     mendeklarasikan beberapa variable yang nantinya dibutuhkan. Variable-variabel tersebut antara lain sebagai berikut (didalam kotak merah pada gambar) :


//Declarations required for audio out and mixing
 private IWavePlayer waveOutDevice;
 private WaveMixerStream32 mixer;

 // The Sample array we will load our Audio Samples in to
 private AudioSample Sample;

 // WaveIn Streams for recording
 WaveIn waveInStream;
 WaveFileWriter writer;
 string outputFilename;

 

    
      8.  Buka jendela design (Form1.cs[Design]), kemudian klik 2 kali pada tombol Record. Setelah itu kita akan berpindah kembali pada jendela source code. Didalam fungsi private void btnRecord_Click(object sender, EventArgs e) ini nantinya kita akan membuat program untuk merekam suara. Program untuk merekam suara seperti yang ada digambar dibawah ini :

    
private void btnRecord_Click(object sender, EventArgs e)
 {
     SaveFileDialog saveFileDialog = new SaveFileDialog();
     saveFileDialog.Title = "Select output file:";
     saveFileDialog.Filter = "WAV Files (*.wav)|*.wav";
     saveFileDialog.FileName = outputFilename;
     if (saveFileDialog.ShowDialog() == DialogResult.OK)
     {

       outputFilename = saveFileDialog.FileName;

       waveInStream = new WaveIn(44100, 2);
       writer = new WaveFileWriter(outputFilename, waveInStream.WaveFormat);

       waveInStream.DataAvailable += new EventHandler<WaveInEventArgs>(waveInStream_DataAvailable);
       waveInStream.StartRecording();

       // Just controling the objects on the screen.
       btnRecord.Enabled = false;
       btnStop.Enabled = true;
     }
 }
      9. Tambahkan juga fungsi waveInStream_DataAvailable, yang digunakan untuk mengambil data suara yang berasal dari microphone.


void waveInStream_DataAvailable(object sender, WaveInEventArgs e)
 {
 writer.WriteData(e.Buffer, 0, e.BytesRecorded);
 int secondsRecorded = (int)(writer.Length / writer.WaveFormat.AverageBytesPerSecond);
 } 
  
      10. Kembali lagi ke jendela design, klik 2 kali pada tombol Stop. Setelah itu pada fungsi btnStop_Click, tambahkan program dibawah ini.


private void btnStop_Click(object sender, EventArgs e)
 {
   waveInStream.StopRecording();
   waveInStream.Dispose();
   waveInStream = null;
   writer.Close();
   writer = null;

   btnRecord.Enabled = true;
   btnStop.Enabled = false;
 }

     11.  Setelah selesai membuat program, sekarang waktunya untuk menguji apakah aplikasi tersebut berhasil atau tidak. Jalankan program tersebut dengan menekan tombol “start debugging” atau bisa dengan menekan tombol F5 pada keyboard.

Setelah itu tekan tombol “Record”, maka akan muncul saveFileDialog yang mana kita diminta untuk menentukan lokasi dimana kita ingin menyimpan hasil rekaman suara tersebut. Setelah kita tentukan lokasi dan nama filenya, klik Save, maka secara otomatis proses perekaman dimulai. Jika kita ingin mengakhiri proses perekaman, tekan tombol “Stop” pada aplikasi.

      12. Setelah kita menekan tombol Stop, kita dapat memutar file hasil rekaman yang kita buat tadi dengan cara, cari lokasi file sesuai dengan tempat dimana kita menyimpan file tadi, kemudian putar/buka file tersebut dengan software pemutar file audio.

Jika file hasil rekaman sesuai dengan apa yang kita rekam tadi, berarti aplikasi audio recording berjalan sesuai dengan fungsinya.

Semoga bermanfaat… :) 

Sumber : http://naudio.codeplex.com/  

dowload file :
1. Library NAudio

0 komentar:

Posting Komentar