Как извлечь целочисленные сэмплы из буфера звуковой очереди и записать измененные сэмплы обратно?

для приложения для изменения голоса iphone (цель c), я пытаюсь взять выборку целочисленные значения из буфера аудио очереди записи, обработать их в функции и записать измененные значения обратно в буфер воспроизведения. В настоящий момент я использую что-то вроде этого

AudioBuffer audioBuffer = bufferList->mBuffers[0];
int bufferSize = audioBuffer.mDataByteSize / sizeof(SInt32);
SInt32 *frame = audioBuffer.mData;
SInt32  signalInput[22050];
for( int i=0; i<bufferSize; i++ ) {
    SInt32 currentSample = frame[i];
    *(signalInput +i) = currentSample;
}

для извлечения выборочных значений и, кажется, работают нормально (предполагается, что входной сигнал является целевым вектором для записи целочисленных выборок). но их запись обратно в буфер все еще остается проблемой ... я просмотрел документацию и множество форумы, чтобы найти решение, но пока не удалось.

так что я буду очень благодарен за любой совет, заранее спасибо, lukas

5
задан WrightsCS 29 January 2011 в 00:37
поделиться