iOS - RemoteIO AudioUnits, можно иметь 2?

Я пытаюсь сделать это

RemoteIO1 (для записи в буфер) -> kAudioUnitType_Mixer -> RemoteIO2 (для воспроизведения вывода)

RemoteIO1 используется для 2 целей:

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 ответ

Решение

С тех пор я узнал, что 2 удаленных интерфейса невозможны для iOS. (поправьте меня, если я ошибаюсь). RemoteIO действует как розетка в стене - один разъем говорит "Вход", а другой - "Выход". "Вход" не подключен к "Выходу". Следовательно, я смог подключить выход моего микшера к выходу remoteIO. В то же время я записал звук с микрофона с входа RemoteIO.

Другие вопросы по тегам