0

我正在使用 audacity 播放原始立体声 16 位线性 PCM(转储在 Android HAL 中),它是 Android 音频抛掷器的输出。总缓冲区为960字节。 从 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] 如下所示: 在此处输入图像描述 seperate_buf[240....479] 如下所示: 在此处输入图像描述 为什么我在上述两个缓冲区中都看到立体声输出?

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

4

0 回答 0