2009-03-29 5 views
0

Je construis un Music PLayer et j'ai donc choisi d'utiliser la bibliothèque de Window Media Player: Maintenant je suis coincé 'cos je souhaite montrer le nom de la chanson dans un listBox et changer les chansons en temps réel mais je ne sais pas comment ça continue. Je stocke des chansons à partir d'un dossier et lorsque le lecteur de musique exécute les chansons de l'URL, choisissez. je vous montre un extrait de code:Window Media PLayer en C#

 private void PlaylistMidday(String folder, string extendsion) 
    { 
     string myPlaylist = "D:\\Music\\The_Chemical_Brothers-Do_It_Again-(US_CDM)-2007-SAW\\"; 
     ListView musicList = new ListView(); 

     WMPLib.IWMPPlaylist pl; 

     WMPLib.IWMPPlaylistArray plItems; 

     plItems = player1.playlistCollection.getByName(myPlaylist); 

     if (plItems.count == 0) 

      pl = player1.playlistCollection.newPlaylist(myPlaylist); 

     else 

      pl = plItems.Item(0); 

     DirectoryInfo dir = new DirectoryInfo(folder); 

     FileInfo[] files = dir.GetFiles(extendsion, SearchOption.AllDirectories); 

     foreach (FileInfo file in files) 
     { 

      string musicFile01 = file.FullName; 

      string mName = file.Name; 

      ListViewItem item = new ListViewItem(mName); 

      musicList.Items.Add(item); 

      WMPLib.IWMPMedia m1 = player1.newMedia(musicFile01); 

      pl.appendItem(m1); 

     } 

     player1.currentPlaylist = pl; 

     player1.Ctlcontrols.play(); 

    } 

Sur chargement je décide de jouer les chansons de « MyPlaylist » Je vous demande donc ce que vous savez une certaine façon comment montrer les chansons de ma liste de lecture dans une zone de liste et quand i cliquez sur l'élément sélectionné je vais changer de chanson?

Merci de votre soutien.

de Nice Cordialement

Répondre

1

au lieu d'ajouter des chansons à la playlist, vous pouvez les ajouter à une List<string> comme une valeur de retour. Lors d'un événement de chargement, vous appelez simplement la méthode qui obtient la liste des chemins d'accès aux fichiers multimédias dans le dossier, puis les ajoutez dans une zone de liste.

Pour changer la chanson en cours de lecture, il vous suffit d'ajouter un événement SelectedValueChanged/SelectedItemChanged, et dans ce cas, obtenir le chemin du fichier qui est actuellement sélectionné dans la liste, ont alors WMP il a joué pour vous :)

private void Form1_Load(object sender, EventArgs e) 
     { 

      List<string> str = GetListOfFiles(@"D:\Music\Bee Gees - Their Greatest Hits - The Record"); 
      listBox1.DataSource = str; 
      listBox1.DisplayMember = "str"; 


     } 

     private List<string> GetListOfFiles(string Folder) 
     { 
      DirectoryInfo dir = new DirectoryInfo(Folder); 
      FileInfo[] files = dir.GetFiles("*.mp3", SearchOption.AllDirectories); 
      List<string> str = new List<string>(); 
      foreach (FileInfo file in files) 
      {        
       str.Add(file.FullName);     

      } 
      return str; 
     } 

     private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      string strSelected = listBox1.SelectedValue.ToString(); 
      MessageBox.Show(strSelected); //Just demo, you can add code that have WMP played this file here 
     } 

une solution rapide. :) Pas très bien, mais ça marche. Aide cet espoir

+0

Salut Vimvq pouvez-vous poster un extrait de code à ce sujet? Désolé je suis un nouveau en C#, Merci Vimvq – JayJay

+0

Salut, je mets une liste de lecture différente, car ils doivent être joués à différents moments avec un minuteur qui appelle la playlist au bon moment. :) – JayJay

+0

Je viens d'ajouter le code de démo. Un code rapide (et peut-être sale). Maintenant, je dois aller au lit :). Heureusement que cela peut aider – Vimvq1987

Questions connexes