Как играть файл MP3 с помощью NAudio

WaveStream waveStream = new Mp3FileReader(mp3FileToPlay);
var waveOut = new WaveOut();
waveOut.Init(waveStream); 
waveOut.Play();

Это выдает исключение:

WaveBadFormat звоня waveOutOpen

Тип кодировки является "MpegLayer3" как NAudio.

Как я могу играть mp3 файл с NAudio?

9
задан Rookian 21 March 2010 в 19:48
поделиться

1 ответ

Попробуйте сделать следующее:

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);
            }
        }
    }
}

Изменить , этот код теперь устарел (относится к NAudio 1.3). Не рекомендуется в более новых версиях NAudio. См. Альтернативный ответ.

8
ответ дан 4 December 2019 в 06:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: