个字节到另一个字节-C#NAudio

我需要规范化8位音频.wav文件.

我使用NAudio将文件加载到byte [].我成功将其转换为sbyte []并恢复了正弦位.然后,我将该数组乘以(强制转换为浮点数),以得到归一化的值(0-255)硬限制.

现在,我需要将其另存为byte []以便NAudio对其进行写入.问题是,如果我刚投下,

source[i] = (byte)normalizedFloatArray[i];

结果保存的.wav看起来像这样!哎哟.

“高飞”

问题可能出在哪里?

解决方法:

我认为发生这种情况的原因是字节如何转换为字节.例:

sbyte b1 = 100;
sbyte b2 = -100;
Console.WriteLine("{0} = {1}", b1, (byte)b1);
Console.WriteLine("{0} = {1}", b2, (byte)b2);

输出以下内容:

100 = 100
-100 = 156

因此,如果您的wave以sbytes为单位显示以下内容:

{ 0, 50, 100, 50, 0, -50, -100, -50, 0 }

输出将是以下字节数:

{ 0, 50, 100, 50, 206, 156, 206, 0 }
上一篇:(转)js jquery.qrcode生成二维码 带logo 支持中文


下一篇:[C#] NAudio 库的各种常用使用方式: 播放 录制 转码 音频可视化