WaveStream waveStream = new Mp3FileReader(mp3FileToPlay);
var waveOut = new WaveOut();
waveOut.Init(waveStream);
waveOut.Play();
Это выдает исключение:
WaveBadFormat звоня waveOutOpen
Тип кодировки является "MpegLayer3" как NAudio.
Как я могу играть mp3 файл с NAudio?
Попробуйте сделать следующее:
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. См. Альтернативный ответ.