我在調查aurioTouch2示例代碼。
我注意到,當我們分析音頻數據時,我們只使用這個數據的第一個緩衝區,而不使用其他緩衝區。 在void FFTBufferManager::GrabAudioData(AudioBufferList *inBL)
功能:爲什麼我們只使用aurioTouch項目中的第一個緩衝區
UInt32 bytesToCopy = min(inBL->mBuffers[0].mDataByteSize, mAudioBufferSize - mAudioBufferCurrentIndex * sizeof(Float32));
memcpy(mAudioBuffer+mAudioBufferCurrentIndex, inBL->mBuffers[0].mData, bytesToCopy);
在功能
static OSStatus PerformThru(
void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData)
if (THIS->displayMode == aurioTouchDisplayModeOscilloscopeWaveform)
{
AudioConverterConvertComplexBuffer(THIS->audioConverter, inNumberFrames, ioData, THIS->drawABL);
SInt8 *data_ptr = (SInt8 *)(THIS->drawABL->mBuffers[0].mData);
}
的問題是,爲什麼我們忽略inBL-> mBuffers 1 .mData數據?
我也試圖在我的應用程序中集成auriotouch項目。我一直在嘗試很長時間,但仍然無法弄清楚。那麼,你能幫我解決這個問題嗎? – 2013-03-27 14:38:23