public static async Task <Stream> LoadAndDecompressMp3(Stream fileStream) { //открываем файл var reader = new Mp3FileReader(fileStream); OnBeginMp3Decompression?.Invoke(); //создаём PCM поток var waveStream = WaveFormatConversionStream.CreatePcmStream(reader); MemoryStream ms = new MemoryStream(); OnBeginWavWriting?.Invoke(); //переписываем MP3 в Wav файл в потоке await Task.Run(() => WaveFileWriter.WriteWavFileToStream(ms, waveStream)); ms.Seek(0, SeekOrigin.Begin); return(ms); }
public static async Task <byte[]> LoadAndDecompressMp3(byte[] fileBytes) { using (MemoryStream mp3MemoryStream = new MemoryStream(fileBytes)) { //открываем файл var reader = new Mp3FileReader(mp3MemoryStream); OnBeginMp3Decompression?.Invoke(); //создаём PCM поток var waveStream = WaveFormatConversionStream.CreatePcmStream(reader); MemoryStream ms = new MemoryStream(); OnBeginWavWriting?.Invoke(); //переписываем MP3 в Wav файл в потоке await Task.Run(() => WaveFileWriter.WriteWavFileToStream(ms, waveStream)); return(ms.ToArray()); } }