假设我有8位(单声道和立体声) .wav 文件。
处理此文件时,我必须声明指向样本数组的指针。

假设我为样本创建数组。然后,如果它是mono,我将使用for(i = 0; i < n; i++ )读取每个样本。

问:如何分别访问左右声道(立体声)?

PS

我已经阅读了很多有关“单声道,立体声和* .wave”的内容,但我仍然不明白如何才能实现对每个声道的单独访问...

最佳答案

您仍有样本数组,问题是如何处理单个值。这是您的操作方式:

const UCHAR* pnSamples = ...
if(bMono)
{
  for(INT nIndex = 0; ...)
  {
    const UCHAR nSample = pnSamples[nIndex];
    // ...
  }
} else
if(bStereo)
{
  for(INT nIndex = 0; ...)
  {
    const UCHAR nLeftSample = pnSamples[2 * nIndex + 0];
    const UCHAR nRightSample = pnSamples[2 * nIndex + 1];
    // ...
  }
}

关于c - 如何分别访问立体声音频文件的左声道和右声道样本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16569859/

10-12 14:47