Как использовать функцию Android Media Recorder getMaxAmplitude
Я пытаюсь запустить аудиозапись http://developer.android.com/guide/topics/media/index.html, она работает нормально, мне нужно показать максимальную амплитуду при непрерывной записи голоса. Что является лучшим подходом для этого.
2 ответа
Решение
Максимальная амплитуда дает максимальную амплитуду данного образца, поэтому я взял образец для каждых 250 миллисекунд и рассчитал максимальную амплитуду
public void run() {
int i = 0;
while(i == 0) {
Message msg = mHandler.obtainMessage();
Bundle b = new Bundle();
try {
sleep(250);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (mRecorder != null) {
amplitude = mRecorder.getMaxAmplitude();
b.putLong("currentTime", amplitude);
Log.i("AMPLITUDE", new Integer(amplitude).toString());
} else {
b.putLong("currentTime", 0);
}
msg.setData(b);
mHandler.sendMessage(msg);
}
}
Я использовал обработчики сообщений для изменения внешнего интерфейса, используя поток фонового процесса
Создать поток, который работает все время. В теме сделайте это:
int amp = mrec.getMaxAmplitude();
if (amp > 0)
yourcode;
Вам нужна дополнительная информация по теме?