Использование подтипа аудиоустройства VoiceProcessingIO вместо RemoteIO вызывает нежелательное падение объема вывода - программирование
Подтвердить что ты не робот

Использование подтипа аудиоустройства VoiceProcessingIO вместо RemoteIO вызывает нежелательное падение объема вывода

Я использую RemoteIO в приложении для голосового чата. Чтобы включить эхоподавление, я изменил "kAudioUnitSubType_RemoteIO" на "kAudioUnitSubType_VoiceProcessingIO" после установки "kAudioSessionCategory_PlayAndRecord" в качестве типа сеанса. В настоящее время работа по эхоподавлению работает, но уровень выходного уровня значительно снизился по сравнению с предыдущим уровнем вывода RemoteIO. Кто-нибудь знает, как получить тот же уровень громкости при использовании VoiceProcessingIO, как при использовании RemoteIO?

4b9b3361

Ответ 1

Я понимаю, что на это не ответили в течение длительного времени, но я обнаружил, что если вы меняете следующие звуковые единицы:

AudioComponentInstanceDispose(_ioUnit);

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient  error:&nsError];

[[AVAudioSession sharedInstance] setActive:NO error:&nsError];

Тогда, похоже, не создается такая огромная проблема громкости между каждым блоком. На этом этапе просто повторите инициализацию своего аудиоустройства и установите тип сеанса так, как вам нужно.

Ответ 2

Я не думаю, что можно учесть потерю выхода в объеме. Согласно Переключение громкости записи между RemoteIO и VPIO

"Нет API, который контролирует уровень усиления (или в вашем случае), все внутренняя настройка ОС в зависимости от категории аудиосеансов (для например, VPIO, как ожидается, будет использоваться с PlayAndRecord всегда) и какой модуль ввода-вывода настроен".

Это также помогло бы, если бы вы сказали, на что iOS вы тестировали, потому что у них разные капли объема вывода.