Saltar al contenido

Cómo reproducir un archivo MP3 usando NAudio

Solución:

Para los usuarios de NAudio 1.6 y superior, no use el código en la respuesta original aceptada. No es necesario agregar un WaveFormatConversionStreamo un BlockAlignReductionStream, y debes evitar usar WaveOut con devoluciones de llamada de función (WaveOutEvent es preferible si no está en una aplicación WinForms o WPF). Además, a menos que desee bloquear la reproducción, normalmente no dormiría hasta que finalice el audio. Solo suscríbete a WaveOut‘s PlaybackStopped evento.

El siguiente código funcionará bien para reproducir un MP3 en NAudio:

var reader = new Mp3FileReader("test.mp3");
var waveOut = new WaveOut(); // or WaveOutEvent()
waveOut.Init(reader); 
waveOut.Play();

Intente así:

class Program
{
    static void Main()
    {
        using (var ms = File.OpenRead("test.mp3"))
        using (var rdr = new Mp3FileReader(ms))
        using (var wavStream = WaveFormatConversionStream.CreatePcmStream(rdr))
        using (var baStream = new BlockAlignReductionStream(wavStream))
        using (var waveOut = new WaveOut(WaveCallbackInfo.FunctionCallback()))
        {
            waveOut.Init(baStream);
            waveOut.Play();
            while (waveOut.PlaybackState == PlaybackState.Playing)
            {
               Thread.Sleep(100);
            }
        }
    }
}

Editar este código ahora está desactualizado (se relaciona con NAudio 1.3). No recomendado en versiones más recientes de NAudio. Consulte la respuesta alternativa.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *