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版本的动态链接库。现在我正在windows 7上工作,请告诉我这段代码哪里出错了。
发布于 2013-08-04 19:38:34
WaveFormatConversionStream是Windows的包装器,所以只有在安装了MP3s MP3编码器时,才能使用它来制作MP3。Windows不附带其中之一。制作MP3s最简单的方法就是使用LAME.exe。我将在C# in 这篇文章中解释如何做到这一点。
另外,如果您使用的是NAudio 1.7的alpha,并且是在Windows8上,那么您可能可以使用MP3编码器,它似乎与Windows8一起作为媒体基础转换。使用MediaFoundationEncoder ( NAudio WPF演示展示了如何做到这一点)。
https://stackoverflow.com/questions/18030070
复制相似问题