Apple Audio Mixer无法生成音量

时间:2015-09-15 13:57:41

标签: ios core-audio audiounit

我正在使用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;
    }

0 个答案:

没有答案