none
ComboBox ve WMP Hakkında RRS feed

  • Genel Tartışma

  • ComboBox'a tanımlı klasörde 1.mp4 2.mp4 3.mp4 ve 4.mp4 var. WMP ekrana entegre edilmiş durumda.

    Soruma gelecek olursak eğer ben 1.mp4 seçersem WMP oynatsın. Eğer 2.mp4 seçersem sadece 2.mp4 oynasın.

    Elimde bir çok video dosyası klasör klasör bulunmakta bu yüzden " player.URL = @".mp4"; " kullanmak istemiyorum. Alternatifi var mı?

    20 Mart 2019 Çarşamba 12:08

Tüm Yanıtlar

  • ne gibi bir alternatif ? bu dosyalarda hazır olarak zaten .mp4 uzantısı varsa bunu yazmak zorunda değilsiniz combobox içerisinden  gelen pathi doğrudan verin o dosyayı açsın . ama bir path belirtmek zorundasınız yoksa nasıl açabilir ?  bunuda comboboxun tıklama eventinde yapın. Tıklama eventinin altında önce playeri durdurun sonra yeni urli verin ve start edin seçtiğiniz dosya çalmaya başlasın . 

    Altan Özdemir

    20 Mart 2019 Çarşamba 13:33
  • ne gibi bir alternatif ? bu dosyalarda hazır olarak zaten .mp4 uzantısı varsa bunu yazmak zorunda değilsiniz combobox içerisinden  gelen pathi doğrudan verin o dosyayı açsın . ama bir path belirtmek zorundasınız yoksa nasıl açabilir ?  bunuda comboboxun tıklama eventinde yapın. Tıklama eventinin altında önce playeri durdurun sonra yeni urli verin ve start edin seçtiğiniz dosya çalmaya başlasın . 

    Altan Özdemir

    30 alt klasör var ve her klasörün içerisinde 15-20 video var. Bu yüzden her bir video için url yazınca karmalıklaşıyor.
    21 Mart 2019 Perşembe 13:21
  • bu klasörleri ve alt dosyaları comboboxa nasıl çektiğinizi gösterebilir misiniz? 

    Altan Özdemir

    21 Mart 2019 Perşembe 13:44
  • bu klasörleri ve alt dosyaları comboboxa nasıl çektiğinizi gösterebilir misiniz? 

    Altan Özdemir

     // Bu kod klasördeki dosyaların form açıldığında comboBox1'de görütülenmesi için     
     private void Form1_Load(object sender, EventArgs e)
            {
                comboBox1.Items.Clear();
                comboBox2.Items.Clear();
                comboBox3.Items.Clear();
                DirectoryInfo di = new DirectoryInfo(@"Kurslar");
                DirectoryInfo[] klasorler = di.GetDirectories();
                foreach (DirectoryInfo klasor in klasorler)
                {
                    comboBox1.Items.Add(klasor.Name);
                }
            }
    // comboBox1'den seçenek seçildiğinde seçilen seçeneğin içindeki alt klasörleri comboBox2'e ekleyen kodlar
    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (comboBox1.SelectedIndex == 0)
                {
                    comboBox2.Items.Clear();
                    comboBox3.Items.Clear();
                    listBox1.Items.Clear();
                    DirectoryInfo di = new DirectoryInfo(@"Kurslar\01)Python");
                    DirectoryInfo[] klasorler = di.GetDirectories();
                    foreach (DirectoryInfo klasor in klasorler)
                    {
                        comboBox2.Items.Add(klasor.Name);
                    }
                }
                else if (comboBox1.SelectedIndex == 1)
                {
                    comboBox2.Items.Clear();
                    comboBox3.Items.Clear();
                    DirectoryInfo di = new DirectoryInfo(@"Kurslar\02)Java");
                    DirectoryInfo[] klasorler = di.GetDirectories();
                    foreach (DirectoryInfo klasor in klasorler)
                    {
                        comboBox2.Items.Add(klasor.Name);
                    }
                }
    
    //comboBox2'den seçilen seçeneğin içinde bulunan klasördeki  mp4 dosyalarının comboBox3'e eklenmesi
    
           private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (comboBox2.SelectedIndex == 0 && comboBox1.SelectedIndex == 0)
                {
                  comboBox3.Items.Clear();
                  string path = @"Kurslar\01)Python\01. Giriş";
                  DirectoryInfo di = new DirectoryInfo(path);
                  FileInfo[] rgFiles = di.GetFiles();
                  foreach (FileInfo fi in rgFiles)
                    {
                        comboBox3.Items.Add(fi.Name);
                    }
                }
                else if (comboBox2.SelectedIndex == 1 && comboBox1.SelectedIndex == 0)
                {
                    comboBox3.Items.Clear();
                    string path = @"Kurslar\01)Python\02. Python Temelleri";
                    DirectoryInfo di = new DirectoryInfo(path);
                    FileInfo[] rgFiles = di.GetFiles();
                    foreach (FileInfo fi in rgFiles)
                    {
                        comboBox3.Items.Add(fi.Name);
                    }
    //AxMediaPlayer'ı player olarak değiştirdim ve aşağıdaki kod ile comboBox3'ten seçilen videoyu mediaplayer ile form içinde oynatmasını sağladım.
    
            {
    if (comboBox2.SelectedIndex == 0 && comboBox3.SelectedIndex == 0 && comboBox1.SelectedIndex == 2)
                {
    player.URL = @"Kurslar\01)Python\01. Giriş\01.Tanıtım.mp4";
                }


    22 Mart 2019 Cuma 08:05
  • Merhaba kodlarınızı düzenledim ve test ettim , seçtiğim videonun pathi geliyor ancak ben media player üzerinden açamadım uygulamam dondu . 

    Öncelikle MyFolder ve MyFiles adından iki adet class oluşturdum .

     public class MyFile
        {
            public string Extension { get; set; }
            public string name { get; set; }
            public string FullName { get; set; }
    
            public override bool Equals(object obj)
            {
                return base.Equals(obj);
            }
    
            public override int GetHashCode()
            {
                return base.GetHashCode();
            }
    
            public override string ToString()
            {
                return base.ToString();
            }
        }
    
     public class MyFolder
        {
    
            public string name { get; set; }
            public string FullName { get; set; }
    
            public override bool Equals(object obj)
            {
                return base.Equals(obj);
            }
    
            public override int GetHashCode()
            {
                return base.GetHashCode();
            }
    
            public override string ToString()
            {
                return base.ToString();
            }
        }

    Bu classları comboboxa datasource olarak belirtmekte kullanacağız ve comboboxları bu classlar ile besleyeceğiz. 

      private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                try
                {
                    if (comboBox1.SelectedItem == null) return;
                    comboBox2.DataSource = null;
                    comboBox3.DataSource = null;
                    var item = (MyFolder)comboBox1.SelectedItem;
                    DirectoryInfo di = new DirectoryInfo(item.FullName);
                    DirectoryInfo[] klasorler = di.GetDirectories();
                    List<MyFolder> folders = new List<MyFolder>();
                    foreach (DirectoryInfo klasor in klasorler)
                    {
                        var folder = new MyFolder()
                        {
                            FullName = klasor.FullName,
                            name = klasor.Name
                        };
                        folders.Add(folder);
                    }
                    if (folders.Count == 0)
                    {
                        comboBox2.DataSource = null;
                    }
                    else
                    {
                        comboBox2.DataSource = folders;
                        comboBox2.DisplayMember = ("name");
                    }
    
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
    
            private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
            {
                try
                {
                    if (comboBox2.SelectedItem == null) return;
                    comboBox3.DataSource = null;
                    var item = (MyFolder)comboBox2.SelectedItem;
                    DirectoryInfo di = new DirectoryInfo(item.FullName);
                    FileInfo[] rgFiles = di.GetFiles("*.mp4");
                    List<MyFile> files = new List<MyFile>();
                    foreach (FileInfo fi in rgFiles)
                    {
                        var file = new MyFile()
                        {
                            Extension = fi.Extension,
                            name = fi.Name,
                            FullName = fi.FullName
                        };
    
                        files.Add(file);
                    }
                    if (files.Count == 0)
                    {
                        comboBox3.DataSource = null;
                    }
                    else
                    {
                        comboBox3.DataSource = files;
                        comboBox3.DisplayMember = ("name");
                    }
    
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
    
            private void comboBox3_SelectedIndexChanged(object sender, EventArgs e)
            {
                try
                {
                    if (comboBox3.SelectedItem == null) return;
                    var item = (MyFile)comboBox3.SelectedItem;
                    player.URL = item.FullName;
    
                }
    
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
    
    
    
            private void button1_Click(object sender, EventArgs e)
            {
                comboBox1.DataSource = null;
                comboBox2.DataSource = null;
                comboBox3.DataSource = null;
                DirectoryInfo di = new DirectoryInfo(@"D:\Egitimler\Acik_Akademi\Egitimler");
                DirectoryInfo[] klasorler = di.GetDirectories();
                List<MyFolder> folders = new List<MyFolder>();
                foreach (DirectoryInfo klasor in klasorler)
                {
                    var folder = new MyFolder()
                    {
                        FullName = klasor.FullName,
                        name = klasor.Name
                    };
                    folders.Add(folder);
                }
                comboBox1.DataSource = folders;
                comboBox1.DisplayMember = ("name");
            }

    FormLoadda değilde bir buton ile kodu tetikledim , dediğim gibi url kısmına path düzgün geliyor ancak ben media playerde oynatamadım uygulamam dondu.


    Altan Özdemir

    22 Mart 2019 Cuma 10:00