Мое приложение измеряет объем захваченного звука в зависимости от абсолютной амплитуды выборки.Изменение чувствительности микрофона Android после телефонного звонка
Я заметил и неожиданное поведение в android.media.AudioRecord
Android SDK. Давайте предположим, что следующий поток:
- приложение запускается
- объем звука измеряется
- Телефонный звонок ответа/набранный
- громкость звука измеряется
Шум вокруг микрофона производится телевизором с постоянной установкой громкости. Значения, измеренные для точки 2, находятся в диапазоне [55-65], а значения, измеренные для точки 4, находятся в диапазоне [15-25] (см. Визуализацию звука для 2. и 4. ниже).
Я понимаю, что при телефонном вызове происходит некоторая регулировка громкости. Можно ли контролировать эти корректировки или избавиться от них?
Я пробовал AutomaticGainControl, но он не поддерживается на моем Nexus 5, и я не хочу его использовать, так как целевые устройства также могут не поддерживать его.
настройка Обновление Этот объем происходит не только после телефонного звонка. Я просто заметил такое же поведение, когда телефон просто лежал на столе, измеряя громкость.
Вы абсолютно правы, чтобы быть осторожным с общими ресурсами, такими как микрофон. Что вы имеете в виду именно в 1.? Я вычисляю громкость для каждого записанного образца, это не настройка пользовательского интерфейса. Другая проблема, которую я испытываю, заключается в том, что выигрыш не будет сохранять качество звука. –
Для 1 - сохраните все настройки микрофона, необходимые для каждой записи, и восстановите их, как только ваше приложение вернется на передний план. – FunkSoulBrother
Спасибо за ваши идеи @FunkSoulBrother.Это правильное предложение, но основная проблема для меня выделена в ** Обновление **. Изменение чувствительности произошло со мной без события телефонного звонка - приложение было на переднем плане, а на телефоне даже не было сим-карты. Мне нужно обеспечить качество звука во время записи. –