我正在尝试这样做
RemoteIO1(用于录制到缓冲区)-> kAudioUnitType_Mixer -> RemoteIO2(用于播放输出)
RemoteIO1用于 2 个目的:
1) 将音频馈入混音器通道 0
2)将音频从麦克风录制到缓冲区
kAudioUnitType_Mixer
1) 从 RemoteIO 获取音频 - 输入 0
2) 将 (1) 中的音频与缓冲区中的音频混合 - input1
远程IO2
1)获取混合音频并将其发送到播放
最初我以为我可以只从混音器输出播放,但下面给了我一个错误。我可以确认我需要另一个 RemoteIO 来进行播放吗?
// Enable Mixer for playback
status = AudioUnitSetProperty(_mixerUnit,
kAudioOutputUnitProperty_EnableIO,
kAudioUnitScope_Output,
mixerOutputBus,
&flag,
sizeof(flag));
if (noErr != status) { NSLog(@"Enable Mixer for playback error"); return; }
另外,我做了以下测试,发现似乎只有一个 RemoteIO 可用(inputComponent 和 inputComponent2 的地址相同)
// Get component
AudioComponent inputComponent = AudioComponentFindNext(NULL, &desc);
AudioComponent inputComponent2 = AudioComponentFindNext(NULL, &desc);
我的应用程序中只能有一个 RemoteIO 实例是真的吗?如果是这样,第二个 RemoteIO 的替代方案是什么?
谢谢。
码头。