1

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

假设我为样本创建数组。然后,如果是mono,我会使用for(i = 0; i < n; i++ ).

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

附言

我已经阅读了很多关于“单声道、立体声和 *.wave”的内容,但我仍然无法理解如何分别实现对每个通道的访问......

4

1 回答 1

2

您仍然有一系列样本,问题是您如何处理单个值。这就是你的做法:

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];
    // ...
  }
}
于 2013-05-15T16:13:42.267 回答