C# ile MP3 Dosyası Yürütme

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üphane

Kütüphanemizi indirdikten sonra projemizi açıp standart DLL import işlemini yapıyoruz.

Add Reference (Referans Ekle)
DLL Seçim alanı

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

dosya yolu

İ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

Paylaş :

Bu gönderiyi paylaş

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.