Jumat, 08 Maret 2013

Video
Text

VISUAL C# No.25: Membuat MP3-WAV Player dengan NAudio Library


Pada tutorial sebelumnya kita telah membuat Player untuk wav file. Sekarang saatnya kita akan membuat player untuk mp3 file. Wav file adalah file audio tanpa kompresi. Sehingga ukurannya sangat besar. Wav file ini biasanya digunakan dalam proses editing audio editor tingkat tinggi dan proses recording.
Sedangkan mp3 file adalah file audio yang telah dikompresi. NAudio menyediakan instance/method untuk menghandle file bertipe ini.
Pada tutorial ini, kita tidak hanya akan membuat mp3 player, tetapi kita akan mencoba membuat keduanya, sehingga player kita mampu memutar mp3 maupun wav file.




Mari kita mulai, pertama kita akan membuat player kita dari WAV Player (tutorial sebelumnya) menjadi MP3 Player terlebih dahulu. Terlebih dahulu mari kita melihat kode kita pada tutorial sebelumnya (dapat anda download di sini):


Pertama tama, sebelum kita membuat player untuk mp3+wav, kita akan membuat player untuk mp3 terlebih dahulu.

Anda dapat lihat pada source code di atas, kita akan mengganti bagian yang diberi tanda "//nanti diganti".

Pada source code di atas kita membuat variable 'wave' dari WaveFileReader. Ini adalah untuk file .wav, nah bagaimana bila yang akan kita loading adalah mp3 file?

Untuk file bertype mp3 kita dapat menggunakan stream dari BlockAlignReductionStream. Saya juga sudah mencari informasi tentang method ini. Method ini digunakan untuk memposisikan di block align dalam audio yang berformat pcm. more detail here

kita akan mencoba mengganti wave dengan variable stream yang diambil dari BlockAlignReductionStream.

private NAudio.Wave.BlockAlignReductionStream stream = null;

Sedangkan berikutnya, kita akan mengganti filter dari WindowOpenDialog yang telah kita buat,

windowDialog.Filter = "MP3 file (*.mp3)|*.mp3;";

Kemudian dalam ifelse, kita pun mengganti WaveFileReader kita dengan Stream dari BlockAlignReductionStream, tetapi disini kita membuat pcmstream terlebih dahulu dari mp3reader method.

NAudio.Wave.WaveStream pcm = NAudio.Wave.WaveFormatConversionStream.CreatePcmStream(new NAudio.Wave.Mp3FileReader(windowDialog.FileName));
stream = new NAudio.Wave.BlockAlignReductionStream(pcm);

SIMPLE BUKAN??

Nah, untuk code fullnya bisa anda lihat di bawah ini:


Ah, ada pertanyaan, kode di atas hanya untuk mp3 saja, lalu bagaimana supaya bisa mp3 dan wav (keduanya)?

kita tinggal menambahkan ifelse saja, seperti pada kode berikut ini:


Jangan lupa untuk mengganti filter dari WindowOpenDialog,
windowDialog.Filter = "Audio files (*.mp3;*.wav)|*.mp3;*.wav;";

Nah, script fullnya adalah jadi seperti ini:


Panjang banget ya scriptnya,, :)
tapi mudah kok dipahami,,, anda bisa download source codenya pada link di bawah ini.




Please share bila tutorial ini cukup berbobot untuk anda!

MediaTutorial mengedepankan tutorial yang berkualitas. Semua penjelasan dipaparkan sedetail mungkin.
Please, bila tutorial ini membantu anda dan cukup berkualitas bagi anda mohon untuk share pada button sharing berikut ini.

Writen by: Okie Eko Wardoyo

Comments