2012-07-12 36 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); 
      } 
     } 
    } 

你走了。