8

現在の騒音レベル (おそらく dB) を測定する小さな Android アプリを開発したいと考えています。しかし、ライブラリで何を探すべきかわかりません。ノイズを録音したくありません。誰かがどのクラスを見るべきかを教えてもらえますか?

4

2 に答える 2

4

これらのクラスを見ることをお勧めします:

android.media.AudioFormat
android.media.AudioManager
android.media.AudioTrack

少し前にBlinkendroid オーディオ パッケージでそれらを使用しました。

于 2010-08-25T15:58:04.300 に答える
0

次のコード スニペットは、過去にノイズ レベルを取得した方法を示しています。残念ながら、ドキュメントには #getMaxAmplitude() が返す単位が記載されていません。

// Start recording but don't store data
MediaRecorder mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setOutputFile("/dev/null");
mediaRecorder.prepare();
mediaRecorder.start();

// Obtain maximum amplitude since last call of getMaxAmplitude()
while(someCondition) {
    int amplitude = mediaRecorder.getMaxAmplitude();
}

// Don't forget to release
mediaRecorder.reset();
mediaRecorder.release();
于 2011-10-19T18:39:48.203 に答える