![](/img/trans.png)
[英]How convert audio aiff to MP3 using Memory stream, NAudio and LameMP3
[英]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.