我有一个pcm音频文件或此文件的字节数组。我需要扭转它并发挥它。
如果我只是像这样反转字节数组我会得到噪音,所以我应该只反转原始数据或采样pcm的原始数据。
public void reverse(byte[] array) {
if (array == null) {
return;
}
int i = 0;
int j = array.length - 1;
byte tmp;
while (j > i) {
tmp = array[j];
array[j] = array[i];
array[i] = tmp;
j--;
i++;
}
}
我读了很多,但我没有找到任何关于我如何做到这一点的信息。
像这样的字节数组存储中的数据(在oneDrive上,因为声誉不够): http://1drv.ms/1DJ0jDr
我会帮助你。非常感谢!
答案 0 :(得分:1)
您需要先将字节数组转换为适合您样本的数组类型,然后反转 数组。例如,如果您的样本是16位,那么您将要转换为短数组。
或者,在16位情况下,您可以将数据保存为字节然后反向 - 但是以成对字节为单位。
public void reverse(byte[] array) {
if (array == null) {
return;
}
int i = 0;
int j = array.length - 1;
byte tmp;
for (int k = 0 ; i < array.length/2; ++i) {
tmp = array[j-1];
array[j-1] = array[i];
array[i] = tmp;
tmp = array[j];
array[j] = array[i+1];
array[i+1] = tmp;
j+=2;
i+=2;
}
}