如何使用 NAudio 将任何音频格式转换为 mp3

本文关键字:格式 转换 mp3 音频 任何 何使用 NAudio | 更新日期: 2023-09-27 18:25:58

public void AudioConvert()
{    
    FileStream fs = new FileStream(InputFileName, FileMode.Open, FileAccess.Read);            
    NAudio.Wave.WaveFormat format = new NAudio.Wave.WaveFormat();
    NAudio.Wave.WaveStream rawStream = new RawSourceWaveStream(fs, format);
    NAudio.Wave.WaveStream wsDATA = WaveFormatConversionStream.CreatePcmStream(rawStream);
    WaveStream wsstream = wst.CanConvertPcmToMp3(2, 44100);
    .....
}
// Here is the class 
public class WaveFormatConversionStreamTests
{
    public WaveStream CanConvertPcmToMp3(int channels,int sampleRate)
    {           
        WaveStream ws = CanCreateConversionStream(
            new WaveFormat(sampleRate, 16, channels),
            new Mp3WaveFormat(sampleRate, channels, 0, 128000/8));
        return ws;
    }
}

在这里,我正在尝试将任何音频格式转换为mp3,但我的代码在转换PCMToMp3函数调用时抛出异常,例如"ACMNotPossible"。我正在使用 NAudio 1.6 版本 dll。现在我正在Windows 7上工作。请告诉我我在此代码中出错的地方。

如何使用 NAudio 将任何音频格式转换为 mp3

WaveFormatConversionStream 是 Windows ACM API 的包装器,因此只有在安装了 ACM MP3 编码器的情况下,您才能使用它来制作 MP3。Windows不附带其中之一。制作 MP3 的最简单方法就是简单地使用 LAME.exe。我将在本文中解释如何在 C# 中执行此操作。

此外,如果您使用的是NAudio 1.7的alpha版本并且使用的是Windows 8,那么您可以使用Windows 8附带的MP3编码器作为媒体基础转换。使用 MediaFoundationEncoder(NAudio WPF 演示演示如何执行此操作(。