/// <summary> /// Creates the reader stream, supporting all filetypes in the core NAudio library, /// and ensuring we are in PCM format /// </summary> /// <param name="fileName">File Name</param> private void CreateReaderStream(string fileName) { if (fileName.EndsWith(".wav", StringComparison.OrdinalIgnoreCase)) { readerStream = new WaveFileReader(fileName); if (readerStream.WaveFormat.Encoding != WaveFormatEncoding.Pcm && readerStream.WaveFormat.Encoding != WaveFormatEncoding.IeeeFloat) { readerStream = WaveFormatConversionStream.CreatePcmStream(readerStream); readerStream = new BlockAlignReductionStream(readerStream); } } else if (fileName.EndsWith(".mp3", StringComparison.OrdinalIgnoreCase)) { readerStream = new Mp3FileReader(fileName); } else if (fileName.EndsWith(".ogg", StringComparison.OrdinalIgnoreCase) || fileName.EndsWith(".mogg", StringComparison.OrdinalIgnoreCase)) { readerStream = new OggFileReader(fileName); } else if (fileName.EndsWith(".aiff")) { readerStream = new AiffFileReader(fileName); } }