首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将a-law转换为pcm

将a-law转换为pcm
EN

Stack Overflow用户
提问于 2014-02-16 10:55:51
回答 2查看 3.2K关注 0票数 0

如何使用编码: ALaw、SampleRate: 8000、BitsPerSample: 8、通道: 1、块对齐信道: 1、比特每秒: 8000转换成具有pcm编码和相同的第一波参数的波形?我曾经使用过来自ALawDecoder的http://www.codeproject.com/Articles/14237/Using-the-G711-standard,现在我有了一个简短的数组(不是字节)!如何将短数组转换为字节数组并使用NAudio.WaveOut播放,以及如何将其写入wave文件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-16 11:05:57

您可以将Alaw解码为PCM,即16 BitsPerSample --这就是为什么您最终得到了一个short的数组。

您可以使用Buffer.BlockCopy()将它们复制到byte[]中。

代码语言:javascript
复制
byte[] result = new byte[shortArray.Length * sizeof(short)];
Buffer.BlockCopy(shortArray, 0, result, 0, result.Length);
票数 0
EN

Stack Overflow用户

发布于 2014-03-04 08:12:51

我没有使用这条长路径,而是使用了以下简单的代码行:

代码语言:javascript
复制
WaveFormatConversionStream conv = new WaveFormatConversionStream(WaveFormat.CreateCustomFormat(WaveFormatEncoding.Pcm, 8000, 1, 16000, 2, 16), inputStream);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21810214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档