我正在尝试将音频流编码为IMA ADPCM,这是我的代码。
public Byte[] EncodeDVI(Byte[] source)
{
var resampleStream = new AcmStream(new WaveFormat(11025, 16, 1), new ImaAdpcmWaveFormat(11025, 16, 1));
Buffer.BlockCopy(source, 0, resampleStream.SourceBuffer, 0, source.Length);
int sourceBytesConverted = 0;
var convertedBytes = resampleStream.Convert(source.Length, out sourceBytesConverted);
if (sourceBytesConverted != source.Length)
{
Console.WriteLine("We didn't convert everything {0} bytes in, {1} bytes converted");
}
var converted = new byte[convertedBytes];
Buffer.BlockCopy(resampleStream.DestBuffer, 0, converted, 0, convertedBytes);
return converted;
}
每次运行代码时我都会收到此错误“NAudio.MmException:'AcmNotPossible call acmStreamOpen'”
答案 0 :(得分:0)
ACM编解码器只能进行有限数量的转换。您可以使用NAudio演示应用程序更详细地探索系统上安装的ACM编解码器以及它们之间可以转换的内容。
我怀疑在这种情况下可能是您的采样率不受支持。我已经编写了更详细的格式转换指南here,该指南解释了您有时需要在几个阶段进行转换。