将字节转换为float(C#)

时间:2016-02-02 12:39:50

标签: c# floating-point byte wav

我目前正在使用WAV(.wav音频文件)阅读器,该阅读器从.wave文件中读取音频数据并创建波形。

我的问题是,根据每个样本的#34位,我得到不同的字节数"大小

字节取决于"每个样本的位数":

8bit = 1 byte
16bit= 2 bytes
24bit= 3 bytes
32bit= 4 bytes

例如: 我读了一个24位立体声.wav文件。 24bit / 2channels = 12bit =每通道3bytes。 字节按 little-endian 排序。

从.wav文件的字节44开始(音频数据开始的地方)我读取文件末尾的所有字节,并将3字节打包成样本。 样本保存字节数(取决于每个样本的位数)。

我的输出如下:

Sample1 R: 66,65,1
Sample1 L: 66,65,1

Sample2 R: 216,132,2
Sample2 L: 216,132,2
...

问题: 如何将不同数量的字节转换为浮点数?

4bytes -> float
3bytes -> float
2bytes -> float
1byte  -> float

(不是this的副本,因为我不总是有4个字节可用)

问候, er4zox

0 个答案:

没有答案