0
の振幅を取得する方法:私はそうのようにAndroid上でマイクの振幅レベルを取得しようとしていたMediaRecorder
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の間録音し、振幅を取得し、録音を停止して繰り返しますか?
最後に、ファイルに記録する必要がありますか?私はこのオーディオファイルを保存する必要はありません。録音せずに現在のライブマイク入力の最後の呼び出しから現在の振幅または最大振幅を得ることはできませんか?
ご協力いただきありがとうございます。