如何使用编码转换波形:ALaw,SampleRate:8000,BitsPerSample:8,通道:1,阻止对齐通道:1,每秒位数:8000以pcm编码波形和第一波的相同参数?我一直在使用http://www.codeproject.com/Articles/14237/Using-the-G711-standard的ALawDecoder,现在我有一个短裤阵列(不是字节)!如何将短数组转换为字节数组并使用NAudio.WaveOut播放它,如何将其写入波形文件?
答案 0 :(得分:0)
你将Alaw解码为PCM,这是16 BitsPerSample - 这就是为什么你最终得到short
的数组。
您可以使用Buffer.BlockCopy()
将其复制到byte[]
:
byte[] result = new byte[shortArray.Length * sizeof(short)];
Buffer.BlockCopy(shortArray, 0, result, 0, result.Length);
答案 1 :(得分:0)
我使用了这一简单的代码行,而不是这条长路径:
WaveFormatConversionStream conv = new WaveFormatConversionStream(WaveFormat.CreateCustomFormat(WaveFormatEncoding.Pcm, 8000, 1, 16000, 2, 16), inputStream);