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.