У меня была проблема со слишком низким звуком в моем собственном приложении каждый раз, когда я использую режим VoiceChat, поэтому в качестве проверки идиота я загрузил пример кода Apple для программирования Audio Unit (SpeakHere) и добавил режим VoiceChat в это приложение. Как оказалось, проблема возникает и там: при работе в этом режиме все становится примерно на 20% от желаемого объема.
Я добавил этот код в строку 267 SpeakHereController.mm сразу после установки категории PlayAndRecord:
// set mode -- this results in audio being too soft
UInt32 mode = kAudioSessionMode_VoiceChat;
error = AudioSessionSetProperty(kAudioSessionProperty_Mode, sizeof(mode), &mode);
if (error) printf("couldn't set audio session mode!");
Я использую режим VoiceChat с RemoteIO, чтобы получить подавление эха при использовании громкой связи; VoiceProcessingIO работает (вроде как), но производительность на старых iPhone (3GS) настолько плоха, что ее нельзя использовать — вот почему вместо этого я использую RemoteIO. Я подтвердил правильность маршрута динамика. Я даже пытался установить режим измерения и вручную увеличить усиление - я не заметил никаких улучшений.
Любые предложения по предотвращению большого падения громкости при использовании режимов AudioSession?