Я работаю над проектом VOIP на iOS. Согласно документам Apple, я использую аудиоустройство VoiceProcessingIO, чтобы получить поддержку эхоподавления.
Поскольку мое приложение требует отдельных операций на сторонах рендеринга и захвата (например, выключить динамик, но позволить микрофону продолжать работу), я создаю два аудиоустройства, у одного из которых отключен порт захвата, а у другого отключен порт рендеринга.
Текущий код работает хорошо, пока я не узнаю, как работает эхоподавление: он требует сравнения сигналов от микрофона и динамика. Поэтому меня беспокоит: безопасно ли использовать два аудиоустройства для обработки голоса, как в моем подходе? Кроме того, поскольку подавление звука работает в основном со стороны захвата, можно ли использовать аудиоустройство RemoteIO для рендеринга (подключение к динамику)?
Я не уверен на 100%, так как вхожу в эту область на короткое время. Я также пробовал с сайта developer.apple.com, но во всех примерах, которые я нашел на сайте developer.apple.com, обычно используется только один аудиоблок.
Может кто-нибудь подскажет? Влияет ли мой подход на функции модуля VoiceProcessingIO?
Спасибо, Фучжоу