tutorial - reproducir mp3 en c#
Reproducción de un archivo MP3 en una aplicación WinForm (5)
Estoy desarrollando una aplicación WinForm
. Quiero reproducir un archivo MP3 cuando el usuario hace clic en un botón.
El archivo MP3 se encuentra en el sistema de archivos de la computadora donde se ejecuta la aplicación.
He buscado en Google por un tiempo y he encontrado información sobre la clase System.Media.SoundPlayer
. Pero he leído que la clase SoundPlayer
solo se puede usar para reproducir archivos en formato .wav.
¿Qué clases se pueden usar para reproducir archivos en formato .mp3?
Cualquier ayuda será apreciada.
- primero ve a las propiedades de tu proyecto
- haga clic en agregar referencias
agrega la biblioteca en el objeto COM para el reproductor multimedia de la ventana y luego escribe tu código donde quieras
Fuente:WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer(); wplayer.URL = @"C:/Users/Adil M/Documents/Visual Studio 2012/adil.mp3"; wplayer.controls.play();
1) La forma más simple sería 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, puede usar la biblioteca de código abierto NAudio . Puede reproducir archivos mp3 utilizando diferentes métodos y en realidad ofrece mucho más que solo reproducir un archivo.
Esto es tan simple como
using NAudio;
using NAudio.Wave;
IWavePlayer waveOutDevice = new WaveOut();
AudioFileReader audioFileReader = new AudioFileReader("Hadouken! - Ugly.mp3");
waveOutDevice.Init(audioFileReader);
waveOutDevice.Play();
No te olvides de tirar después de la parada
waveOutDevice.Stop();
audioFileReader.Dispose();
waveOutDevice.Dispose();
El siguiente enlace proporciona un tutorial muy bueno sobre cómo reproducir archivos mp3 desde un formulario de Windows con c #:
http://www.daniweb.com/software-development/csharp/threads/292695/playing-mp3-in-c
Este enlace lo llevará a un tema, que contiene mucha información sobre cómo reproducir una canción mp3, utilizando formularios de Windows. También contiene muchos otros proyectos, tratando de lograr lo mismo:
Por ejemplo, use este código para .mp3:
WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer();
wplayer.URL = "My MP3 file.mp3";
wplayer.Controls.Play();
Entonces solo pon el wplayer.Controls.Play (); en el evento Button_Click.
Por ejemplo, use este código para .wav:
System.Media.SoundPlayer player = new System.Media.SoundPlayer();
player.SoundLocation = "Sound.wav";
player.Play();
Pon el jugador.Jugar (); en el evento Button_Click, y funcionará.
Refactorización:
new WindowsMediaPlayer() { URL = "MyMusic.mp3" }.controls.play();
puede usar la API mciSendString para reproducir un archivo mp3 o 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);