none
Ler todos arquivos mp3 do diretorio selecionado RRS feed

  • Pergunta

  • olá pessoas!

    bom, é o seguinte...

    estou criando um player de áudio mp3 e gostaria de saber se tem como listar todos os arquivos .mp3 de uma pasta especifica e preencher uma listbox e quando eu der play ela tocar tudo que esta na lista automático

    o Código que tenho é este mas ele traz o caminho inteiro do arquivo e não passa para o próximo sozinho.

     public void SelectFileMusic()
            {
                string UserName = System.Environment.UserName;
                string[] files = Directory.GetFiles(@"C:\Users\" + UserName + "\\Music", "*.mp3", SearchOption.AllDirectories);

                paths = files;

                for (int i = 0; i < files.Length; i++)
                {
                    PlayList.Items.Add(files[i]);
                }

            }

    quinta-feira, 4 de janeiro de 2018 19:15

Respostas

  • Boa tarde, Gabriel.

    Segue o passo a passo:

    Tem 1 formulário, 1 listbox (dispensável) e um windows media player.

    O código está embaixo.

    

    Este é o resultado:

    Este é o código:

    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; //atenção aqui
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
                SelectFileMusic();
            }
    
            public void SelectFileMusic()
            {
               IWMPPlaylist Playlist = axWindowsMediaPlayer1.playlistCollection.newPlaylist("thePlaylist");    
               DirectoryInfo dirInfo = new DirectoryInfo(@"C:\Users\Mariano\Desktop\Nova pasta");
               foreach (FileInfo file in dirInfo.GetFiles())
               {
                   IWMPMedia3 VideoFile = (IWMPMedia3) axWindowsMediaPlayer1.newMedia(file.FullName);
                   listBox1.Items.Add(file.FullName); // o listbox pode ser eliminado
                   Playlist.appendItem(VideoFile);
               }
    
                axWindowsMediaPlayer1.currentPlaylist = Playlist;
    
                
            }
        }
    }
    
    
    


    MARIANO1776

    • Sugerido como Resposta Thysbe sábado, 6 de janeiro de 2018 00:29
    • Não Sugerido como Resposta Thysbe sábado, 6 de janeiro de 2018 00:30
    • Sugerido como Resposta Mariano1776 sábado, 6 de janeiro de 2018 10:42
    • Marcado como Resposta Gabriel Cruz Nogueira sábado, 6 de janeiro de 2018 15:00
    sexta-feira, 5 de janeiro de 2018 21:36
  • Boa tarde, Gabriel.

    Segue o passo a passo:

    Tem 1 formulário, 1 listbox (dispensável) e um windows media player.

    O código está embaixo.

    

    Este é o resultado:

    Este é o código:

    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; //atenção aqui
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
                SelectFileMusic();
            }
    
            public void SelectFileMusic()
            {
               IWMPPlaylist Playlist = axWindowsMediaPlayer1.playlistCollection.newPlaylist("thePlaylist");    
               DirectoryInfo dirInfo = new DirectoryInfo(@"C:\Users\Mariano\Desktop\Nova pasta");
               foreach (FileInfo file in dirInfo.GetFiles())
               {
                   IWMPMedia3 VideoFile = (IWMPMedia3) axWindowsMediaPlayer1.newMedia(file.FullName);
                   listBox1.Items.Add(file.FullName); // o listbox pode ser eliminado
                   Playlist.appendItem(VideoFile);
               }
    
                axWindowsMediaPlayer1.currentPlaylist = Playlist;
    
                
            }
        }
    }


    MARIANO1776

    show meu brother, deu certinho, so mais uma pergunta, tem como colocar um filtro neste código? tipo... só mostrar mp3 por exemplo?
    galera deu certo aqui, só modifiquei esta linha 

    foreach (FileInfo file in dirInfo.GetFiles())

    //deixando assim

     foreach (FileInfo file in dirInfo.GetFiles("*.mp3", SearchOption.AllDirectories)
    obrigado a todos ;)
    sábado, 6 de janeiro de 2018 14:59

Todas as Respostas

  • Boa noite Gabriel.

    Veja esta thread recente, talvez te ajude.

    Está em vb.net, mas a conversão para C# não é dificil.

    https://social.msdn.microsoft.com/Forums/pt-BR/2f1bf372-c05f-4b81-97af-0f9137444aa9/ajuda-com-openfile?forum=vsvbasicpt


    MARIANO1776

    sexta-feira, 5 de janeiro de 2018 00:20
  • bom dia Mariano1776!

    então... o que vc indicou o meu já faz, o que preciso é que quando eu clicar no botão em vez dele abrir a pasta com as musicas pra eu selecionar ele já carregue e minha playlist direto mas exatamente como a opção openfile e não como arquivos de diretório.

    sexta-feira, 5 de janeiro de 2018 12:51
  • Como assim "e não como arquivos de diretório"? O que seriam arquivos de diretório?

    Não deu pra entender o que está faltando no seu código.


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    sexta-feira, 5 de janeiro de 2018 13:01
  • Olhe isso aqui:

    https://www.codeproject.com/Articles/844451/Audio-and-Video-Player-Csharp-Winform

    Acredito que é o que precisa!

    Abraços


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Microsoft Developer .NET
    Microsoft Certified Professional
    Development Leader at JAMSOFT Informática
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter

    sexta-feira, 5 de janeiro de 2018 13:49
  • Boa tarde, Gabriel.

    Segue o passo a passo:

    Tem 1 formulário, 1 listbox (dispensável) e um windows media player.

    O código está embaixo.

    

    Este é o resultado:

    Este é o código:

    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; //atenção aqui
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
                SelectFileMusic();
            }
    
            public void SelectFileMusic()
            {
               IWMPPlaylist Playlist = axWindowsMediaPlayer1.playlistCollection.newPlaylist("thePlaylist");    
               DirectoryInfo dirInfo = new DirectoryInfo(@"C:\Users\Mariano\Desktop\Nova pasta");
               foreach (FileInfo file in dirInfo.GetFiles())
               {
                   IWMPMedia3 VideoFile = (IWMPMedia3) axWindowsMediaPlayer1.newMedia(file.FullName);
                   listBox1.Items.Add(file.FullName); // o listbox pode ser eliminado
                   Playlist.appendItem(VideoFile);
               }
    
                axWindowsMediaPlayer1.currentPlaylist = Playlist;
    
                
            }
        }
    }
    
    
    


    MARIANO1776

    • Sugerido como Resposta Thysbe sábado, 6 de janeiro de 2018 00:29
    • Não Sugerido como Resposta Thysbe sábado, 6 de janeiro de 2018 00:30
    • Sugerido como Resposta Mariano1776 sábado, 6 de janeiro de 2018 10:42
    • Marcado como Resposta Gabriel Cruz Nogueira sábado, 6 de janeiro de 2018 15:00
    sexta-feira, 5 de janeiro de 2018 21:36
  • tentarei explicar melhor rsrs, estou programando um player que responde a comando de voz que possui uma listbox e tudo praticamente gira em torno desta, exemplo: eu falo "mostrar pasta de musica" ai este código entra em ação e me mostra o diretório para eu selecionar e carregar a minha listbox, ai dou o comando para tocar e ela executa a playlist toda sem eu fazer mais nada, ate ai tudo tranquilo;

     public void OpenFileMusic()
            {
                string UserName = System.Environment.UserName;
                OpenFileDialog ofd = new OpenFileDialog();
                ofd.InitialDirectory = @"C:\Users\" + UserName + "\\Music";
                ofd.Filter = "(mp3, mp4, wav, wmv, wma, avi, mpg, 3gp, flv)|*.mp3; *.mp4; *.wav; *.wmv; *.wma; *.avi; *.mpg; *.3gp; *.fly|all files|*.*";
                ofd.Multiselect = true;
                if (ofd.ShowDialog() == DialogResult.OK)
                {

                    files = ofd.SafeFileNames;
                    paths = ofd.FileNames;

                    for (int i = 0; i < files.Length; i++)
                    {
                        PlayList.Items.Add(files[i]);

                    }
                }
            }

    mas o que preciso é : quando eu der o comando de exemplo, " carregar lista de musica" e minha playlist carregue os arquivos que eu indiquei a extensão "*.MP3" e execute como no código acima, o que não ocorre com este código abaixo

     public void SelectFileMusic()
            {
                string UserName = System.Environment.UserName;
                string[] files = Directory.GetFiles(@"C:\Users\" + UserName + "\\Music", "*.mp3", SearchOption.AllDirectories);

                paths = files;

                for (int i = 0; i < files.Length; i++)
                {
                    PlayList.Items.Add(files[i]);
                }

            }

    este só me traz os caminhos dos arquivos e na hora da execução ele não passa para o próximo automático, gostaria que tudo funcionasse como no primeiro código mas sem eu ter que selecionar manualmente, e desde já  peço desculpas se ainda ficou complicado rsrsr

    sábado, 6 de janeiro de 2018 12:19
  • Boa tarde, Gabriel.

    Segue o passo a passo:

    Tem 1 formulário, 1 listbox (dispensável) e um windows media player.

    O código está embaixo.

    

    Este é o resultado:

    Este é o código:

    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; //atenção aqui
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
                SelectFileMusic();
            }
    
            public void SelectFileMusic()
            {
               IWMPPlaylist Playlist = axWindowsMediaPlayer1.playlistCollection.newPlaylist("thePlaylist");    
               DirectoryInfo dirInfo = new DirectoryInfo(@"C:\Users\Mariano\Desktop\Nova pasta");
               foreach (FileInfo file in dirInfo.GetFiles())
               {
                   IWMPMedia3 VideoFile = (IWMPMedia3) axWindowsMediaPlayer1.newMedia(file.FullName);
                   listBox1.Items.Add(file.FullName); // o listbox pode ser eliminado
                   Playlist.appendItem(VideoFile);
               }
    
                axWindowsMediaPlayer1.currentPlaylist = Playlist;
    
                
            }
        }
    }
    
    


    MARIANO1776

    show meu brother, deu certinho, so mais uma pergunta, tem como colocar um filtro neste código? tipo... só mostrar mp3 por exemplo?
    sábado, 6 de janeiro de 2018 14:35
  • Prezado Gabriel.

    Inclua a linha em negrito abaixo.

    Por gentileza, se resolveu, marque como resposta.

    public void SelectFileMusic()
            {
               IWMPPlaylist Playlist = axWindowsMediaPlayer1.playlistCollection.newPlaylist("thePlaylist");    
               DirectoryInfo dirInfo = new DirectoryInfo(@"C:\Users\Mariano\Desktop\Nova pasta");
               foreach (FileInfo file in dirInfo.GetFiles())
               {
                  
                   if (file.FullName .Substring (file.FullName .Length - 4) == ".mp3")
                   {
                       IWMPMedia3 VideoFile = (IWMPMedia3) axWindowsMediaPlayer1.newMedia(file.FullName);
                       listBox1.Items.Add(file.FullName); // o listbox pode ser eliminado
                       Playlist.appendItem(VideoFile);
                   }
               }
    
                axWindowsMediaPlayer1.currentPlaylist = Playlist;
    
                
            }


    MARIANO1776

    sábado, 6 de janeiro de 2018 14:58
  • Boa tarde, Gabriel.

    Segue o passo a passo:

    Tem 1 formulário, 1 listbox (dispensável) e um windows media player.

    O código está embaixo.

    

    Este é o resultado:

    Este é o código:

    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; //atenção aqui
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
                SelectFileMusic();
            }
    
            public void SelectFileMusic()
            {
               IWMPPlaylist Playlist = axWindowsMediaPlayer1.playlistCollection.newPlaylist("thePlaylist");    
               DirectoryInfo dirInfo = new DirectoryInfo(@"C:\Users\Mariano\Desktop\Nova pasta");
               foreach (FileInfo file in dirInfo.GetFiles())
               {
                   IWMPMedia3 VideoFile = (IWMPMedia3) axWindowsMediaPlayer1.newMedia(file.FullName);
                   listBox1.Items.Add(file.FullName); // o listbox pode ser eliminado
                   Playlist.appendItem(VideoFile);
               }
    
                axWindowsMediaPlayer1.currentPlaylist = Playlist;
    
                
            }
        }
    }


    MARIANO1776

    show meu brother, deu certinho, so mais uma pergunta, tem como colocar um filtro neste código? tipo... só mostrar mp3 por exemplo?
    galera deu certo aqui, só modifiquei esta linha 

    foreach (FileInfo file in dirInfo.GetFiles())

    //deixando assim

     foreach (FileInfo file in dirInfo.GetFiles("*.mp3", SearchOption.AllDirectories)
    obrigado a todos ;)
    sábado, 6 de janeiro de 2018 14:59
  • Prezado Gabriel.

    Postei uma solução acima, mas gostei mais da sua.

    Vivendo e aprendendo.


    MARIANO1776

    sábado, 6 de janeiro de 2018 15:05