Я использовал этот код в прошлом:
AudioManager am = (AudioManager) getSystemService(getContext().AUDIO_SERVICE); am.setParameters("noise_suppression=off");
Это примерно эквивалентно:
NoiseSuppressor ns; ns = NoiseSuppressor.create(sessionID);
Но это влияет на все сеансы. Есть ли способ сделать то же самое с эффектами AcousticEchoCanceler
и AutomaticGainControl
?
Проблема в том, что аудио-сессия, которую я пытаюсь настроить для усиления, создается каким-то внешним процессом, и я не могу определить sessionID
, поэтому мне было бы достаточно применить эффект ко всем сеансам, если только это можно было бы сделать Аналогично am.setParameters("noise_suppression=off");
FYI, звук записывается инфраструктурой VoIP, встроенной в мое приложение (Plivo), но нет способа получить доступ к потоку для применения эффектов.