C# ile MP3 Dosyası Yürütme
Merhabalar, atıştırmalık örnekler ve not defterime bir kodu daha eklemek için buradayım.
Yazımın başlığından da anlaşılacağı gibi yazdığımız bir projede MP3 dosyasını nasıl yürüteceğimizi göreceğiz. Aslına bakarsanız çok karmaşık komplike bir sistem değil. Bir adet hazır DLL’imiz mevcut onu projemize dahil ettikten sonra bir kaç satır kod ve sonuca ulaşacağız 🙂
Öncelikle aşağıda belirttiğim linkten kütüphanemizi indirin.
Belirtilen KütüphaneKütüphanemizi indirdikten sonra projemizi açıp standart DLL import işlemini yapıyoruz.


Burada “Browse” veya “Seç” diyoruz. Kullandığınız dile göre farklılık gösterebilir.

İndirdiğimiz kütüphanenin yolunu gösterip “Add” veya “Ekle” diyoruz sonrasında “OK” veya “Tamam” diyoruz ve kütüphanemiz projemize dahil edilmiş oluyor.
Her Zaman olduğu gibi DLL i projemize dahil etmemiz yeterli olmuyor, MP3 dosyamızı oynatmak istediğimiz formun içerisine bu kütüphaneyi import etmemiz lazım.
using NAudio; using NAudio.Wave; //Aşağıda ki iki kütüphanemiz ise arkaplanda ilerlemeyi hesaplamak için kullanılacak sınıflar using System.Threading; using System.Threading.Tasks;
Açıkçası ben bu projeyi yazdığımda delegate ile uğraşmak istememiştim, çünkü yalnızca MP3 yürütebilecek miyim acaba ile başlayan bir şeydi beni için yıllar önce. O Yüzden “CheckForIllegalCrossThreadCalls = false;” ile işlemlerimi hallettim.
Öncelikle ben kendi projeme 2 Adet Button ve 1 Adet ProgressBar Ekledim.
public Form1() { InitializeComponent(); CheckForIllegalCrossThreadCalls = false; } //MP3 yürütme için kullacağımız değişkenler burada IWavePlayer waveOutDevice; AudioFileReader audioFileReader; PlaybackState PBS; Thread thr = null; long pos = 0, total = 0; bool durdur = false; private void ReturnProg() { while (true) { if (durdur) { pos = audioFileReader.Position; total = audioFileReader.TotalTime.Ticks; progressBar1.Value = Convert.ToInt32((pos * 1000) / total); } } } private void Form1_Load(object sender, EventArgs e) { waveOutDevice = new WaveOut(); // Alt satır da dosya yolumuzu belirtiyoruz. audioFileReader = new AudioFileReader(Environment.CurrentDirectory + "\\1.mp3"); waveOutDevice.Init(audioFileReader); PBS = waveOutDevice.PlaybackState; pos = Convert.ToInt32(audioFileReader.Position); total = Convert.ToInt32(audioFileReader.TotalTime.Ticks); thr = new Thread(new ThreadStart(ReturnProg)); thr.Start(); } private void button1_Click(object sender, EventArgs e) { // Başlat Buttonu waveOutDevice.Play(); PBS = waveOutDevice.PlaybackState; this.Text = PBS.ToString(); durdur = true; } private void button2_Click(object sender, EventArgs e) { // Durdur Buttonu waveOutDevice.Pause(); PBS = waveOutDevice.PlaybackState; this.Text = PBS.ToString(); durdur = false; }
Kodlar aslında bu kadar kısa, siz kendinize göre özelleştirmesini yaparsınız. Listeler çalmalar vs.
Size örnek projemi de yine aşağıda paylaşıyoruz. Oradan gerekirse bakabilirsiniz.
Örnek Proje
Bir yanıt yazın