MICからサウンドを録音し、ライブグラフを描こうとしています。私はグラフを記録し描画することができます。問題は、以下のコードを使って記録された値が正確ではないなどのことです。下の画像は、すべてのサウンドが存在しないときの結果です。私はfftを使用した例を見たことがありますが、私は時間領域のグラフを描こうとしていて、それを周波数領域(今のところ)に変換する目的がないので、私の場合はそれが助けになるかどうかは分かりません。他の人は平均的なパワーを使用していますが、これは参考になるかもしれませんが、わかりません。アンドロイドのAudioRecord振幅読み取り
ありがとうございました。
bufferSize = AudioRecord.getMinBufferSize(RECORDER_SAMPLERATE,RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING);
recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
RECORDER_SAMPLERATE, RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING, bufferSize);
short data [] = new short[bufferSize];
while (!Thread.interrupted()) {
recorder.startRecording();
recorder.read(data, 0, bufferSize);
recorder.stop();
for (short s : data)
{
try {
Thread.sleep((long) 300.00);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
postUI (Math.abs(s));
}
}
recorder.release();
ハイテクをチェックアウトする方法あなたは –
レコーダー=新しいaudiorecordの(MediaRecorder.AudioSource.MICを助けてくださいaudiorecorderで音の振幅を手に入れました、 RECORDER_SAMPLERATE、RECORDER_CHANNELS、RECORDER_AUDIO_ENCODING、bufferSize); recorder.startRecording(); \t \t \t recorder.read(data、0、bufferSize); \t \t \t recorder.stop(); for(short s:data) { average + = Math.abs(s); } – user591124