示例#1
0
        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);
        }
示例#2
0
        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());
            }
        }