For users of NAudio 1.6 and above, please do not use the code in the original accepted answer. You do not need to add a WaveFormatConversionStream or BlockAlignReductionStream , and you should avoid using WaveOut with function WaveOutEvent ( WaveOutEvent preferred if you are not in a WinForms or WPF application). In addition, if you do not want to block playback, you usually will not sleep until the sound ends. Just sign up for the WaveOut PlaybackStopped event.
The following code will work very well to play MP3 in NAudio:
reader = new Mp3FileReader("test.mp3"); var waveOut = new WaveOut();
Mark heath
source share