C# ile basit Media Player işlemleri

Admin tarafından yazılmıştır. 13. Kasım 2008 12:30

Merhabalar :)

İlk makalem olacağından üzerimde garip bir heyecan var ve nasıl başlayacağım konusunda kararsız kaldım.Bende C#'a yeni başlayanların hoşuna gidecek örnek bir içerik hazırladım . Tüm kodları ve yapılan her işlemi açıklama satırlarıyla belirttim gerçekten yeni iseniz bu tür satırlar hayat kurtarıyor :)

media player

media player film

 Evet en azından programcığın neye benzediği hakkında bilgi edinmiş olduk .

Programın amacı ana görünümden Şarkı Seç butonuna basıp OpenFile ile seçilen şarkıyı çalmak ve play,stop işlemleri label'de parça bilgilerini yazdırmak.Video Formunu Aç butonuna tıklandığında ise yeni bir form açılacak tam ekran Film Aç butonundan seçilen filmin izlenmesi,play,stop,formu kapa gibi işlemleri yapacağız.

 İlk olarak anaformumuz olan Form1'in kodlarıyla başlıyoruz.

--------Form1  Başlangıç----------

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using WMPLib;

namespace MediaPlayerProje
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //ilk olarak projemize aşağıdaki namespace i ekliyoruz.
        //using WMPLib;

        //Daha sonra ToolBox da sağ tıklayıp Choose Items diyoruz.Ekrana gelen pencereden şarkı ve video oynatmamızı sağlayan Media Player componentini ekleyeceğiz.Bunun için gelen pencereden COM Components sekmesine tıklıyoruz  ve listeden Windows Media Player'ı işaretleyip OK diyoruz.ToolBox'ımıza media player nesnesi geldikten sonra formumuza sürükleyip bırakıyoruz.

        //ToolBox'dan Dialogs bölümünden de bir tane OpenFileDialog sürükleyip bırakıyoruz formumuza

        private void btnMediaListeAc_Click(object sender, EventArgs e)
        {

            //Şarkı Seç butonuna basınca eklediğimiz OpenFileDialog nesnesinin showDialog() metoduyla açıyoruz.
            openFileDialog1.ShowDialog();

            //OpenFile'dan seçtiğimiz müzik dosyasını  openfileDialog'un  FileName metoduyla dosya yolunu alıyoruz ve formumuza eklediğimiz  Windows Media Player componentini kullanıyoruz. eklenen componentin adı axWindowsMediaPlayer1 oldugundan bunun metoduna  propertsine openFile'dan gelen dosya yolunu atıyoruz ve şarkımız çalmaya başlıyor !
            axWindowsMediaPlayer1.URL = openFileDialog1.FileName;

            //Aşagıda void ParcaBilgisiGetir() olarak tanımladığımız metodu burada click olayında çagırıyoruz.Yani openFileDialog'dan seçtiğimiz parçayı url olarak media player nesnesine atıyoruz ve bu metotla o anda player'da çalan parçanın media bilgilerine ulaşıyoruz.
            ParcaBilgisiGetir();
        }

        private void btnPlay_Click(object sender, EventArgs e)
        {
            //playerımıza play özelliği eklemekte oldukça basit.eklenen componentin Ctlcontrols propertsinin play metodu bize URL olarak verdiğimiz parçayı oynatmasını saglıyor.
            axWindowsMediaPlayer1.Ctlcontrols.play();
        }


        //Birtane Label ekleyelim. Ve bundan son parçanın bilgilerini label'ye yazdırmak için bir metot yazıyoruz ve bu metodu daha sonra Liste Aç butonunun click olayından çagıracagız.Metot olmadanda direk bu kodu yazabilirdik ama biraz daha esneklik katalım her ne kadar ufakcık bir projede olsa.Hemde el alışkanlıgı olur herşeyi biryere yazmamak konusunda :) . Metodumuzun adı ParcaBilgisiGetir olacak.

        void ParcaBilgisiGetir()
        {
           //Çalan parçanın media bilgilerini bir labela yazdırmak için ise (ileride ayrıntılı olarak ele alacagımız şimdilik adını duymamız yetecektir) IWMPMedia interface inden bir nesne yaratıp bu nesnenin o sırada çalan media'nın bilgilerine ulaşmamızı saglar.
            //media adında nesnemiz hazır.
            IWMPMedia media = axWindowsMediaPlayer1.currentMedia;
            label2.Text = "Parça adı : " + media.name;

            //Sadece parça adını getirmek değil bu media nesnesini amacı.
            // media.durationString  = parça uzunlugunu getirir
            //media.sourceURL = çalan parçanın dosya yolunu bulur getirir.Diğer property ve metotlarıda inceleyebilirsiniz
        }

        private void btnStop_Click(object sender, EventArgs e)
        {
            //mediaplayer nesnemizda çalan parçayı stop metoduyla durduruyoruz.
            axWindowsMediaPlayer1.Ctlcontrols.stop();
        }

        //------------Video Oynatma---------------//
        //Video oynatmak için anaformumuzdan video aç butonuna basıp açılan formdan filmi seçicez ve tam ekran olarak video oynatacagız.Görevimiz bu şimdilik.Bunun için Uygulamamıza bir form eklememiz lazım.Bunun için Solution Explorer'dan(eger ekranda yoksa View menüsünden Solution Explorer seçin) uygulamamızın üstüne sag tıklıyoruz (bendeki MediaPlayerProje) Add/Windows Form diyoruz.Açılan pencereden Name özelliğinden eklenecek olan formun adını giriyoruz.(ben frmVideoOynatma.cs olarak ayarladım) ve ok diyoruz.Artık yeni formumuz Solution Explorer'da gözükecektir.Üzerine çift tıklarsan tasarım açamasına geçeriz.
        // daha sonra ana formumuzda bulunan video aç butonuna ekleyeceğimiz formun nesnesini yaratığ show metodunu kullanuyoruz.
        private void btnVideoFormAc_Click(object sender, EventArgs e)
        {
            //C#'da herşey birer nesne oldugu için formumuzunda nesnesini yaratıyoruz ve hafızada oluşturmuş oluyoruz.
            frmVideoOynatma formVideo = new frmVideoOynatma();
            formVideo.Show();
            //daha sonra oluşturudugumuz formVideo nesnemizin Show metoduyla yeni formumuzu ekranda göstermiş oluyoruz.
        }

        //Bundan sonraki işlemlerimiz frmVideoOynatma formunda olacagından açıklama satırları ve kodlarımız aşağıdaki bölümdedir.
    }
}
 

--------Form1  Bitiş----------

 ~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~~~ 

--------frmVideoOynatma Başlangıç---------- 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace MediaPlayerProje
{
    public partial class frmVideoOynatma : Form
    {
        public frmVideoOynatma()
        {
            InitializeComponent();
        }
        //ilkönce ToolBox'dan Dialog bölümünden film seçmek için kullanacagımız bir openFileDialog ekleyelim formumuza.
        //videomuzu tam ekran oynatmak için  Properties'den Formumuzun Text özelliğini siliyoruz.ControlBox özelliğini False Yapıyoruz.WindowState özelliğinide Maximized yapıyoruz ki form açıldığında tam ekran açılsın.
        //Daha sonra Formumuza bir mediaPlayer componenti ekliyoruz ve üzerine sağ tıklayıp Properties'den Sıgdırmak için genişleti checkbox'ını işaretliyoruz.Mod Seçin bölümünden de None yapıyoruz.Sonra Properties penceresinden Dock özelliğini Fill yapıyoruz ki formu kaplasın.
        //Bu işlemden sonra formumuza ToolBox'dan Containers bölümünden bir tane flowLayoutPanel seçip formun üstüne bırakıyoruz.Bununda sağ tarafda properties den Dock özelligini bottom yapıyoruz.Açıldıgında formun altına dayalı gelecek.
        //Eklemiş oldugumuz flowLayoutPanel'in üstüne 4 tane buton ekliyoruz.Bunların amacı Film Aç,Play,Stop ve video formunu kapatan Kapat isimli butonlar.
        //Formumuza bir tane Timer ekliyoruz ToolBox'un Component bölümünden.Timer nesnesini seçip Properties bölümünden Interval degerini 3000 yapıyoruz .Görsellik katıcaz birazdan :) 3 saniye geçtiğinde flowLayoutPanel yok olacak doğal olarak butonlarımızda içinde oldugundan kaybolacak.Bunlar kayboldugunda başka buton çıkacak ve kibar bir şekilde aşagıda duracak tekrar tıklanıldıgında play , stop vs'in bulundugu bölüm geri gelece.
        //Bu görsellik için bir buton ekliyoruz ve Sag tarafdan Properties Bölümünden Dock özelliğini Bottom yapıyruz böylece flowlayoutPanel'in hemen üstüne yapışmış bir hal alıyor.Buton'un Text özelliğini <> yapmayıda unutmayalım.

        //Şimdi ilk olarak form'dan alt tarafta bulunan timer1 nesnesine çift tıklayalım ve codlarımızı yavaş yavaş yazalım.

        //ilkönce bir metot yazalım ve bu yok olma işlemi gerektiği yerlerde sadece metodun ismiyle çagıralım kod kalabalıgı olmasın.Bu metodu çagırdımız zaman timer çalışmaya başlayacak ve 3 saniye doldugunda timer1_tick olayındaki işlem gerçekleşecek.Yani Timer1'e istediginiz yerde Start() dedikten sonra timer1_Tick'de belirttiginiz işlemler gerçekleşecektir.
        void FlowPanelGizle()
        {
            timer1.Start();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            //Timer1'in interval degerini properties'den 3000 olarak vermiştik..Milisaniye cinsinden deger aldıgından 3 saniye üzerinden işlem yapar.10000 deseydik 10 saniye olurdu.Şimdi o verdigimi deger yani 3 saniye doldugnda alta bulunan flowlayout paneli yok edelim.
            flowLayoutPanel1.Visible = false;
        }

        //butondan filmimizi seçiyoruz ve yok olma işlemi için metodu çagırıyoruz.Şarkı çalmayla aynı görevimiz bir nevi...
        private void btnVFilmAc_Click(object sender, EventArgs e)
        {
            //openfile'den seçtigimiz dosyayı yine URL olarak mediaplayer'a atıyoruz.
            openFileDialog1.ShowDialog();
            axWindowsMediaPlayer1.URL = openFileDialog1.FileName;

            //ve film seçildikten 3 saniye sonra menü kaybolması için yukarıda oluşturdugumuz metodun ismini çagırıyoruz.
            FlowPanelGizle();
            //ve filmimiz oynamaya başlıyor :)
        }

        private void btnVPlay_Click(object sender, EventArgs e)
        {
            //şarkı çalarkenki aynı özellikleri kullanıcazgız play ve stop işlemleri için.
            axWindowsMediaPlayer1.Ctlcontrols.play();

            //play'e basınca zaman metodumuzu tekrar çagırıyorz.
            FlowPanelGizle();
        }

        private void btnVStop_Click(object sender, EventArgs e)
        {
            //buda o anda oynayan filmi durdurmamızı saglıyor.
            axWindowsMediaPlayer1.Ctlcontrols.stop();

            //stop'a basınca zaman metodumuzu tekrar çagırıyorz.
            FlowPanelGizle();
        }

        private void btnVCikis_Click(object sender, EventArgs e)
        {
            //ve açık olan video formumuzu kapatıyoruz.
            this.Close();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //daha sonra o kaybolan menümüzün gelmesi için tekrar flowlayout'un visible özelligini true yapıyoruz.
            flowLayoutPanel1.Visible = true;
        }
    }
}

 --------frmVideoOynatma Bitiş----------  

 

Evet.En kolay anlatımla basit bir şekilde müzik çalma ve video oynatma işlemlerini gördük.Umarım yeni başlayanlar için faydalı olmuştur 

Proje olarak indirmek için tıklayın.

  Bir sonraki yazımda görüşmek üzere :)

Kendinize iyi bakın...

Serhat Taş

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler: ,

C# & .NET

Yorumlar

Yorum ekle


(Gravatar simgesini gösterecek)  

biuquote
  • Yorum
  • Canlı önizleme
Loading



Powered by BlogEngine.NET 1.4.5.0
Bu tema Mads Kristensen tarafından yapılmıştır ve Türkçeleştirilmesi Blog Engine Türkiye ekibi tarafından yapılmıştır.

Son Yorumlar

Comment RSS

Yasal Uyarı

Bu sitede sunulan tüm bilgi ve dökümanların kullanımından ve sitede yapılan kullanıcı yorumlarından (siyasi içerik,hakaret vb.) doğacak sorunlardan yazar sorumlu tutulamaz. 

İçeriğin kaynak belirtilmeden kopyalanması yasaktır !

SERHAT TAŞ

© Copyright 2010