【发布时间】:2017-01-14 06:31:45
【问题描述】:
我试图像这样在 Android 上获取麦克风的振幅电平:
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
Timer timer = new Timer();
timer.scheduleAtFixedRate(new RecorderTask(recorder), 0, 1000);
private class RecorderTask extends TimerTask {
private MediaRecorder recorder;
public RecorderTask(MediaRecorder recorder) {
this.recorder = recorder;
}
public void run() {
Log.v("MicInfoService", "amplitude: " + recorder.getMaxAmplitude());
}
}
不幸的是,这始终只返回 0。
看来,要让这个工作,我必须真正开始录制。对吗?
如果是这样,我需要记录500ms,获取幅度,停止记录并重复吗?
最后,我必须记录到文件吗?我不需要保存这个音频文件,我不能只获取当前的实时麦克风输入的当前幅度或自上次呼叫以来的最高幅度而不进行录音吗?
感谢任何帮助,谢谢。
【问题讨论】:
标签: android mediarecorder