Naudio mvc 将 mp3 转换为 wav

Posted

技术标签:

【中文标题】Naudio mvc 将 mp3 转换为 wav【英文标题】:Naudio mvc convert mp3 to wav 【发布时间】:2014-01-30 15:28:10 【问题描述】:

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

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;
                     

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

【问题讨论】:

您的 bytes3 只包含 PCM,而不是 WAV 文件。您需要在处理 WaveFileWriter 之后从内存流中获取底层字节数组。 谢谢,它正在工作。 【参考方案1】:

最简单的方法是将 MemoryStream 实例传递给 WaveFileWriter 构造函数,然后将所有样本写入写入器...对于解码端,您可以使用 Mp3FileReader...

祝你好运!

【讨论】:

我发布了代码,你能告诉我可能是什么问题吗? 马克搞定了...享受吧!

以上是关于Naudio mvc 将 mp3 转换为 wav的主要内容,如果未能解决你的问题,请参考以下文章

使用 NAudio 转换为 WAV 后使用 SoundPlayer 播放 MP3

将大 mp3 文件转换为 wav 时间问题

在 NAudio 中附加 WAV 标头

如何使用 C# NAudio 操作字节?

使用 NAudio 将 g722 音频转换为 WAV

如何将 NAudio WaveStream 写入内存流?