[英]NAdio ImaAdpcm input re sampling AcmNotPossible error
我正在尝试将音频流编码为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调用acmStreamOpen'”
ACM编解码器只能执行有限数量的转换。 您可以使用NAudio演示应用程序来更详细地研究系统上安装了哪些ACM编解码器以及它们之间可以转换的内容。
我怀疑在这种情况下,可能不支持您的采样率。 我已经写了格式转换的更详细的指南在这里 ,这也解释了,有时候你需要使你的转换在几个阶段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.