我正在使用Apple创建的音频混音器我正在启动录音机录音。
使用调音台播放音频文件并使用音频单元录音将是同步操作,我正在使用AudioSessionInitialize初始化音频会话。
我第一次启动这个时间混音器和录音机工作正常,但是当我尝试播放音频文件并从其他视图控制器录制时,时间混音器不会产生任何音量。
我有点被困在这里,有人遇到这样的问题请帮帮我。
这是混音器渲染回调
<div>
这是录制回调:
static OSStatus renderInput(void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData){
SoundBufferPtr sndbuf = (SoundBufferPtr)inRefCon;
UInt32 sample = sndbuf[inBusNumber].sampleNum;
UInt32 bufSamples = sndbuf[inBusNumber].numFrames;
Float32 *in = sndbuf[inBusNumber].data;
Float32 *outA = (Float32 *)ioData->mBuffers[0].mData;
for (UInt32 i = 0; i < inNumberFrames; ++i) {
if(sample < bufSamples && inBusNumber > kNumOfRecordStartBus)
outA[i] = in[sample++];
else if(inBusNumber < kNumOfRecordStartBus+1){
outA[i] = in[sample++];
if (sample > bufSamples) {
sample = 0;
}
}
}
if(sndbuf[inBusNumber].numFrames == sample)
[[NSNotificationCenter defaultCenter]
postNotificationName: @"AUDIOFILENOTLOOPING"
object: @{@"BUSNUMBER":[NSString stringWithFormat:@"%d",inBusNumber]}];
else
sndbuf[inBusNumber].sampleNum = sample;
return noErr;
}