我正在尝试转换

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/

10-11 18:35