4

変換しようとしています

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

ここで何か不足していますか?

どんなリードも大歓迎です。

4

1 に答える 1

2

ACM mu-law エンコーダーは、その入力が 16 ビットであることを想定しています。mu または a-law を使用している場合、サンプル レートも低くなる可能性があります。次の 2 行のコードは、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);
于 2012-11-30T08:13:38.753 に答える