Я хочу, чтобы мое приложение реагировало на звук загрузки, как хлопок.Проблема в том, что getMaxAmplitude()
достигает своего максимального значения 32762, даже когда разговаривает обычным голосом, переменная которого >= my "allMaxAmpli"
установлена в режиме конфигурации.
Устройство записи на носитель настроено так:
mrec = new MediaRecorder();
mrec.setAudioSource(MediaRecorder.AudioSource.MIC);
mrec.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mrec.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
[..]
mrec.setOutputFile(audiofile.getAbsolutePath());
mrec.prepare();
mrec.start();
и проверка выполняется следующим образом (абстрактно):
int maxAmp = mrec.getMaxAmplitude();
if (maxAmp >= CalibAmp)
Log.v("ID", "Max Amp is greater!");
Я что-то пропустил?
Есть ли другой способ измерить громкость или увеличить предел для getMaxAmplitude?Я думал об использовании AudioRecord, но тогда мне нужно было рассчитать амплитуду вручную.Я хотел избавиться от этого.
Я долго искал, прежде чем подумать о публикации, но ничего не смог найти.Любая помощь будет принята.
/ Edit: Если я вычислю децибел из амплитуды, получат ли это другие значения?Тогда это может решить проблему.
/ Edit2: Я рассчитал децибел из амплитуды, но проблема сохраняется, поскольку амплитуда все время так высока.Ни у кого нет идеи?: /
/ Edit3: После тестирования некоторых других приложений кажется, что это общая проблема с Android.Поэтому каждое приложение для измерения звука бесплатное.