查询Android中的噪音级别

时间:2010-08-25 15:46:14

标签: android microphone noise

我想开发一款小型Android应用来测量当前的噪音水平(可能是dB)。但是我不知道在libs中要寻找什么。我不想记录噪音。有人可以给我一个指针,看看哪些类?

3 个答案:

答案 0 :(得分:4)

我建议查看这些课程:

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

我们很久以前在Blinkendroid audio package中使用过它们。

答案 1 :(得分:1)

对我而言,“maxAmplitude”没有帮助。经过一天的研究,我终于达到了我的目标。您可以在此处找到我的解决方案:Android: AudioRecord Class Problem: Callback is never called

答案 2 :(得分: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();