字节数组到短数组,然后再次返回 java
2022-08-31 20:07:58
我在获取存储在字节数组中的音频数据,将其转换为大端短数组,对其进行编码,然后将其更改回字节数组时遇到了一些问题。这是我所拥有的。原始音频数据存储在 audioBytes2 中。我使用相同的格式进行解码,并在cos函数上使用减号。不幸的是,更改字节和短数据类型是不可协商的。
short[] audioData = null;
int nlengthInSamples = audioBytes2.length / 2;
audioData = new short[nlengthInSamples];
for (int i = 0; i < nlengthInSamples; i++) {
short MSB = (short) audioBytes2[2*i+1];
short LSB = (short) audioBytes2[2*i];
audioData[i] = (short) (MSB << 8 | (255 & LSB));
}
int i = 0;
while (i < audioData.length) {
audioData[i] = (short)(audioData[i] + (short)5*Math.cos(2*Math.PI*i/(((Number)EncodeBox.getValue()).intValue())));
i++;
}
short x = 0;
i = 0;
while (i < audioData.length) {
x = audioData[i];
audioBytes2[2*i+1] = (byte)(x >>> 0);
audioBytes2[2*i] = (byte)(x >>> 8);
i++;
}
我已经做了我能想到的一切来使它工作,但是我最接近的是让它每隔一个编码/解码工作,我不知道为什么。感谢您的任何帮助。