WaveStream waveStream = new Mp3FileReader(mp3FileToPlay);
var waveOut = new WaveOut();
waveOut.Init(waveStream);
waveOut.Play();
这会引发异常:
WaveBadFormat calling waveOutOpen
编码类型为“MpegLayer3”,如NAudio。
如何使用 NAudio 播放 mp3 文件?
最佳答案
对于 NAudio 1.6 及以上版本的用户,请不要使用原始接受答案中的代码。您不需要添加 WaveFormatConversionStream
或 BlockAlignReductionStream
,并且您应该避免将 WaveOut
与函数回调一起使用 (WaveOutEvent
如果您不在 WinForms 或 WPF 应用程序中,则更可取)。此外,除非您想要阻止播放,否则您通常不会在音频结束前 sleep 。只需订阅 WaveOut
的 PlaybackStopped
事件即可。
以下代码可以很好地在 NAudio 中播放 MP3:
var reader = new Mp3FileReader("test.mp3");
var waveOut = new WaveOut(); // or WaveOutEvent()
waveOut.Init(reader);
waveOut.Play();
关于c# - 如何使用 NAudio 播放 MP3 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2488426/