2012-07-12 158 views
3

在我的项目中,我收到了一个字节数组中的mp3数据。我想将该数据转换为wav格式并将其存储在另一个字节数组中。我搜索互联网的MP3到WAV转换器,但他们都支持文件到文件的转换。他们似乎都没有将原始数据作为投入。有什么办法可以在C#中实现这一点吗?
这是我尝试创建的函数的原型。将mp3数据转换为wav数据C#

bool ConvertToWav(byte[] buffer){ 
     //Do some processing and store the wav data in buffer2 
     Buffer.BlockCopy(buffer2,0,buffer,0,buffer.Length-1); 
    } 
+0

如果您将文件流式传输到字节[],那么您可以继续在互联网中找到的内容? – 2012-07-12 06:28:14

+3

我认为这可以让你的地方 - http://stackoverflow.com/questions/3432860/mp3-byte-array-convert-to-wav-and-navigate-to-time-index – 2012-07-12 06:29:46

+0

@AlexR。在任何情况下,我都不允许将数据存储在文件中。此外,为了工作,我必须首先保存在一个文件中收到的数据,然后从转换后的文件中读取数据。 – gibraltar 2012-07-12 06:30:19

回答

6

这是相当的响应迟,但我想通了自己。 这个NuGet软件包叫NAudio,https://www.nuget.org/packages/NAudio/ 这为你想要做的事提供了很棒的功能。

using NAudio.Wave;   

    private static void ConvertMp3ToWav(string _inPath_, string _outPath_) 
    { 
     using (Mp3FileReader mp3 = new Mp3FileReader(_inPath_)) 
     { 
      using (WaveStream pcm = WaveFormatConversionStream.CreatePcmStream(mp3)) 
      { 
       WaveFileWriter.CreateWaveFile(_outPath_, pcm); 
      } 
     } 
    } 

你走了。