我创建了一个wav解析器。我从数据块中读取样本信息,如下所示:
while (offset < size)
{
var value = 0;
switch (bits_channel)
{
case 8:
value = data.SubArray(offset, 1)[0];
break;
case 16:
value = BitConverter.ToInt16(data.SubArray(offset, 2), 0x0);
break;
default:
value = BitConverter.ToInt32(data.SubArray(offset, bits_channel / 8), 0x0);
break;
}
samples[channel].Add(value);
//Tools.Log("Read value: " + samples[channel].Last() + ", " + bits_channel);
offset += bits_channel;
channel = (channel + 1) % numchannels;
}
其中SubArray是一个函数,它(显然)创建一个带有startindex和length的子数组,offset是数据中当前位的偏移量。
所以基本上你可以看到,在时间轴上有很大的振幅,但在大胆中它几乎完全无声,它在我的程序中看起来是最大振幅。可能是什么问题?