Использование подтипа аудиоустройства VoiceProcessingIO вместо RemoteIO приводит к нежелательному падению выходной громкости

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


person techgentsia    schedule 08.07.2013    source источник
comment
Мне также было бы интересно узнать основную причину этого и любые возможные обходные пути, так как я сообщал об этом как о проблеме в моих собственных проектах. Не похоже, что есть внутренняя причина для того, чтобы VPIO был тише, когда его просто бросили в работающий в других отношениях блок RemoteIO с теми же настройками аудиосеанса, но похоже, что это поведение.   -  person Halle    schedule 22.09.2013
comment
У меня тоже была эта проблема. Я заметил, что для iOS 6 и более поздних версий громкость упала значительно больше, чем для iOS 5. На какой iOS вы тестируете?   -  person nvrtd frst    schedule 22.09.2013
comment
Я также обнаружил, что VPIO полностью не работает на iOS 7 на моделях iPhone 5, 5s, и я предполагаю, что 5c.   -  person nvrtd frst    schedule 01.10.2013


Ответы (2)


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

AudioComponentInstanceDispose(_ioUnit);

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

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

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

person Chuck D    schedule 30.10.2014
comment
Чак, если ты сможешь сделать это приложение github.com/winstondu/Voice-Processing-Demo запустить эхоподавление с меньшим объемом вывода из сторонних приложений (например, spotify, я был бы очень благодарен). - person Winston Du; 19.09.2020

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

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

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

person Domecraft    schedule 29.09.2013