Установка kAudioSessionMode в примере Apple SpeakHere вызывает значительное падение громкости. Любые обходные пути?

У меня была проблема со слишком низким звуком в моем собственном приложении каждый раз, когда я использую режим 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?


person sounder_michael    schedule 21.11.2012    source источник


Ответы (1)


Получается, что /current/ audio route используется, когда установлен режим VoiceChat для определения наилучших настроек усиления, эхоподавления и т. д. Это означает, что если вы собираетесь установить конкретный маршрут, вам нужно это сделать до того, как вы установите режим, а не после.

Выполнение этого в этом порядке устранило проблему с громкостью для меня:

  • установить PlayAndRecord
  • установить маршрут к динамику
  • установить режим
  • использовать VoiceProcessingIO в моих аудиоустройствах
  • держите аппаратную частоту дискретизации низкой (8k), чтобы поддерживать хорошую производительность на старых устройствах, таких как 3GS.
person sounder_michael    schedule 26.12.2012
comment
У меня также большое падение громкости в образце SpeakHere от Apple. Чтобы увеличить громкость в этом образце, что мне делать? - person ttotto; 14.03.2013
comment
Можете ли вы уточнить, какую версию iOS вы использовали и модель iphone? - person pzo; 15.01.2014
comment
@ user657429 Это была iOS 6 с использованием различных устройств (iPhone 5, iPod touch, iPhone 3GS). - person sounder_michael; 16.01.2014
comment
Наконец-то я нашел человека с такой же проблемой, как и я. К сожалению, это не решает это для меня. - person james0n; 03.12.2014