Медиа-плеер Android Чтение децибел - PullRequest
4 голосов
/ 24 ноября 2011

Я искал похожие темы, но не могу найти четкого и краткого ответа.Я пытался найти способ определить выходной уровень децибел в определенный момент времени, когда воспроизводится медиаплеер Android.Я не могу найти способ определить, насколько громкий телефон в данный момент времени при воспроизведении песни.Я просматривал API проигрывателя мультимедиа, но не могу понять, как получить чтение в определенный момент во время воспроизведения песни.

Любые идеи или помощь приветствуются.

Ответы [ 2 ]

5 голосов
/ 24 ноября 2011

Я думаю, что вы должны записать звук, используя MediaRecorder:

mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mRecorder.setOutputFile("/dev/null"); 
mRecorder.prepare();
mRecorder.start();

   public double getAmplitude() {
            if (mRecorder != null)
                    return  (mRecorder.getMaxAmplitude());
            else
                    return 0;

    }

Чтобы рассчитать значение Db:

  powerDb = 20 * log10(getAmplitude() / referenceAmp);

Обычно, чтобы выбрать максимальную величину сигнала в качестве опорной амплитуды. То есть мы нормализуем сигнал так, чтобы максимальная амплитуда определялась как 1 или 0 дБ

2 голосов
/ 09 февраля 2015

Автор давно ушел, но я все равно перезвоню для потомков.Я думаю, что ключом к пониманию того, что вы хотите сделать здесь, является определение того, что вы подразумеваете под децибелами, и что вы понимаете под выходом системы Android.Похоже, вы пытаетесь измерить выходную мощность наушников, в этом случае, что невозможно без внешней системы калибровки наушников, чтобы вы знали, какой дБ выходной мощности соответствует дБ SPL для наушников.

Если это цель, и вы понимаете это, класс визуализатор , который предоставляет Android, может быть полезен.Он также дает 8-битные данные частоты FFT, а также величину.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...