Android反向播放pcm文件

时间:2015-02-21 20:37:37

标签: android audio bytearray pcm

我有一个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

我会帮助你。非常感谢!

1 个答案:

答案 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;
      }
  }