一旦我们收到来自麦克风的任何输入,我就会使用播放音频。我正在使用OSStatus录制和播放音频。由于录音和播放工作正常。
我必须根据用户选择激活左侧耳机、右侧耳机或中心。在我研究 AudioBuffer时,我们必须为左、右和中耳机设置mNumberChannels 。这是我播放音频的代码。
AudioBuffer buffer;
// // 1 - Left
// // 2 - Right
// // 3 - Center
//
buffer.mNumberChannels = 0;
buffer.mDataByteSize = inNumberFrames * 2;
buffer.mData = malloc( inNumberFrames * 2 );
// Put buffer in a AudioBufferList
AudioBufferList bufferList;
bufferList.mNumberBuffers = 1;
bufferList.mBuffers[0] = buffer;
// Obtain recorded samples
OSStatus status;
status = AudioUnitRender([iosAudio audioUnit],
ioActionFlags,
inTimeStamp,
inBusNumber,
inNumberFrames,
&bufferList);
checkStatus(status);
// Now, we have the samples we just read sitting in buffers in bufferList
// Process the new data
[audioProcess processAudio:&bufferList];
free(bufferList.mBuffers[0].mData);
return noErr;
但是,如果我更改mNumberChannels ,我将无法启用左、右或居中。谁能帮忙指出我的错误?