将立体声音轨分割为单声道音轨功能

时间:2015-07-18 19:35:03

标签: android audio sampling mixing audacity

我正在使用audacity播放原始立体声16位线性PCM(在Android HAL中转储),这是Android音频flinger的输出。总缓冲区 960 字节。 enter image description here 从audio_flinger_buf(由audioflinger给出)将立体声转换为单个单声道通道(单个缓冲区中的左右声道)的正确方法是什么? 我的图书馆需要将左右频道分开作为输入。

我有以下代码,我认为会这样做:

  channels = 2
  for (i=0;i<channels;i++) {
      int j;
      for (j=0;j<240;j++) {
          seperate_buf[240*i+j] = ((int16_t *)audio_flinger_buf)[j*DSM_CHANNELS+i];
      }
  }

所以seperate_buf [0..239]会留下样本,seperate_buf [240 ... 479]会有正确的样本。

seperate_buf [0 ... 239]如下所示: enter image description here seperate_buf [240 .... 479]如下所示: enter image description here 为什么我在这两个缓冲区中看到立体声输出?

我的代码是否正确用于从立体声缓冲区中分离出左右?我看到大胆也做了类似的事情(https://goo.gl/GZh7fg)。

0 个答案:

没有答案