3

我正在尝试这样做

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 的替代方案是什么?

谢谢。

码头。

4

1 回答 1

2

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

于 2012-11-08T07:22:04.007 回答