我正在尝试转换
PCM S16 LE (araw)
Mono, Sample rate 22050, Bit pr. sample 16
至
PCM mulaw (PCM MU-LAW)
Mono, Sample rate 8000hz, Bit pr. sample is 8.
WaveFormat.CreateMuLawFormat(8000,1)
或更通用的WaveFormat.CreateCustomFormat
,其中我已指定与源流相同的WaveFormatEncoding
引发相同的异常。AcmNotPossible calling acmStreamOpen
我在这里想念什么吗?
任何线索将不胜感激。
最佳答案
ACM mu-law编码器期望其输入为16位。如果您使用mu或a-law,则采样率也可能很低。以下两行代码将创建一个零长度的PCM 16位流,并将其传递到WaveFormatConversionStream中,以将其转换为a-law。除非出于某种原因您没有在计算机上安装G.711编码器,否则它不应引发“无法进行转换”错误。
var s = new RawSourceWaveStream(new MemoryStream(), new WaveFormat(8000,16,1));
var c = new WaveFormatConversionStream(WaveFormat.CreateALawFormat(8000,1), s);
关于c# - AcmNotPossible调用acmStreamOpen,naudio,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13628145/