2014-01-30 101 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