2014-01-30 98 views
0

我想知道是否可以使用nAudio库将mp3转换为波形,但不将转换后的文件保存到光盘(例如使用MemoeryStream)?Naudio mvc将mp3转换为wav

Link to nAudio

任何的例子吗?

我想是这样的:

byte[] fileStream = null; 
MemoryStream ms2 = new MemoryStream(); 
using (WaveStream waveStream = WaveFormatConversionStream.CreatePcmStream(newMp3FileReader(filePath))) 
using (WaveFileWriter waveFileWriter = new WaveFileWriter(ms2,waveStream.WaveFormat)) 
        { 
         byte[] bytes3 = new byte[waveStream.Length]; 
         waveStream.Position = 0; 
         waveStream.Read(bytes3, 0, (int)waveStream.Length); 
         waveFileWriter.Write(bytes3, 0, bytes3.Length); 
         fileStream = bytes3; 
         return fileStream; 
        } 

当我从保存字节数组文件已损坏。 屏幕:

Screen

+1

您的bytes3只包含PCM,而不是WAV文件。您需要在配置WaveFileWriter之后从内存流中获取底层字节数组。 –

+0

谢谢,它的工作。 – Toystoj

回答

0

做到这一点最简单的方法是通过一个MemoryStream实例WaveFileWriter构造函数,然后写所有样品的作家......因为你可以使用Mp3FileReader解码端..

祝你好运!

+0

我发布的代码,你能告诉我什么可能是一个问题? – Toystoj

+0

马克钉它...享受! – ioctlLR