iOS - RemoteIO音频单元,可能有2个?

时间:2012-11-06 08:17:56

标签: buffer core-audio audiounit remoteio

我正在尝试这样做

RemoteIO1(用于录制到缓冲区) - > kAudioUnitType_Mixer - > RemoteIO2(用于播放输出)

RemoteIO1 用于两个目的:

1)将音频输入混音器通道0

2)将音频从麦克风录制到缓冲区

kAudioUnitType_Mixer

1)从RemoteIO获取音频 - 输入0

2)将来自(1)的音频与来自缓冲区的音频 - input1

混合

RemoteIO2

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有哪些替代方案?

感谢。

码头。

1 个答案:

答案 0 :(得分:2)

我已经了解到,因为iOS无法实现2个remoteIO。 (如果我错了,请纠正我)。 RemoteIO就像墙上的插座 - 一个插头说“输入”而另一个说“输出”。 “输入”未连接到“输出”。 因此,我能够将调音台的输出连接到remoteIO的输出。 同时,我从RemoteIO输入中捕获了麦克风音频。