如何将具有编码:ALaw,SampleRate:8000,BitsPerSample:8, channel :1, block 对齐 channel :1,每秒位数:8000 的波转换为具有 pcm 编码和第一波相同参数的波?我一直在使用 http://www.codeproject.com/Articles/14237/Using-the-G711-standard 的 ALawDecoder ,现在我有一个短裤数组(不是字节)!如何将短数组转换为字节数组并使用 NAudio.WaveOut 播放它以及如何将其写入波形文件?
最佳答案
您将 Alaw 解码为 PCM,即 16 BitsPerSample - 这就是您最终得到 short
数组的原因s。
您可以使用 Buffer.BlockCopy()
将它们复制到 byte[]
:
byte[] result = new byte[shortArray.Length * sizeof(short)];
Buffer.BlockCopy(shortArray, 0, result, 0, result.Length);
关于c# - 将 a-law 转换为 pcm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21810214/