繁体   English   中英

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

[英]How to convert any audio format to mp3 using NAudio

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,但是我的代码在ConvertPCMToMp3函数调用时引发了诸如“ ACMNotPossible”之类的异常。 我正在使用NAudio 1.6版本dll。 现在,我正在Windows 7上工作。请告诉我这段代码在哪里出错。

WaveFormatConversionStream是Windows ACM API的包装,因此,如果安装了ACM MP3编码器,则只能使用它来制作MP3。 Windows不附带其中之一。 制作MP3的最简单方法就是使用LAME.exe。 我解释如何做到这一点在C# 这篇文章

另外,如果您正在Windows 8上使用NAudio 1.7的alpha版本,则可以将Windows 8附带的MP3编码器用作Media Foundation Transform。 使用MediaFoundationEncoder(NAudio WPF演示显示了如何执行此操作)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM