ti-enxame.com

Reproduzindo um arquivo MP3 em um aplicativo WinForm

Estou desenvolvendo um aplicativo WinForm. Quero reproduzir um arquivo MP3 quando o usuário clicar em um botão.

O arquivo MP3 está localizado no sistema de arquivos do computador em que o aplicativo é executado.
Pesquisei no Google por um tempo e encontrei informações sobre a classe System.Media.SoundPlayer. Mas eu li que a classe SoundPlayer só pode ser usada para reproduzir arquivos no formato .wav.

Quais classes podem ser usadas para reproduzir arquivos no formato .mp3?

Qualquer ajuda será muito apreciada.

43
user1139666

O link abaixo fornece um tutorial muito bom sobre como reproduzir arquivos mp3 em um formulário do Windows com c #:

http://www.daniweb.com/software-development/csharp/threads/292695/playing-mp3-in-c

Este link levará você a um tópico, que contém muitas informações sobre como tocar uma música mp3, usando os formulários do Windows. Ele também contém muitos outros projetos, tentando conseguir a mesma coisa:

http://social.msdn.Microsoft.com/forums/en-US/csharpgeneral/thread/3dbfb9a3-4e14-41d1-afbb-1790420706fe

Por exemplo, use este código para .mp3:

WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer();

wplayer.URL = "My MP3 file.mp3";
wplayer.Controls.Play();

Em seguida, coloque apenas o wplayer.Controls.Play (); no evento Button_Click.

Por exemplo, use este código para .wav:

System.Media.SoundPlayer player = new System.Media.SoundPlayer();

player.SoundLocation = "Sound.wav";
player.Play();

Coloque o player.Play (); no evento Button_Click e funcionará.

39
Max

1) A maneira mais simples seria usar WMPLib

WMPLib.WindowsMediaPlayer Player;

private void PlayFile(String url)
{
    Player = new WMPLib.WindowsMediaPlayer();
    Player.PlayStateChange += Player_PlayStateChange;
    Player.URL = url;
    Player.controls.play();
}

private void Player_PlayStateChange(int NewState)
{
    if ((WMPLib.WMPPlayState)NewState == WMPLib.WMPPlayState.wmppsStopped)
    {
        //Actions on stop
    }
}

2) Como alternativa, você pode usar a biblioteca de código aberto NAudio . Ele pode reproduzir arquivos mp3 usando métodos diferentes e, na verdade, oferece muito mais do que apenas reproduzir um arquivo.

Isso é tão simples quanto

using NAudio;
using NAudio.Wave;

IWavePlayer waveOutDevice = new WaveOut();
AudioFileReader audioFileReader = new AudioFileReader("Hadouken! - Ugly.mp3");

waveOutDevice.Init(audioFileReader);
waveOutDevice.Play();

Não se esqueça de descartar após a parada

waveOutDevice.Stop();
audioFileReader.Dispose();
waveOutDevice.Dispose();
27
VladL
  1. primeiro vá para as propriedades do seu projeto
  2. clique em adicionar referências
  3. adicione a biblioteca no objeto COM para o windows media player e digite seu código onde desejar


    Fonte:

        WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer();
    
        wplayer.URL = @"C:\Users\Adil M\Documents\Visual Studio 2012\adil.mp3";
        wplayer.controls.play();
    
7
Adiii

você pode usar a API mciSendString para reproduzir um mp3 ou um arquivo wav como este

[DllImport("winmm.dll")]
public static extern uint mciSendString( 
  string lpstrCommand, lpstrReturnString, uint uReturnLength, uint hWndCallback);

mciSendString(@"close temp_alias", null, 0, 0);   
mciSendString(@"open ""music.mp3"" alias temp_alias", null, 0, 0);   
mciSendString("play temp_alias repeat", null, 0, 0); 
1
krisliu