8

我想开发一个小型 Android 应用程序来测量当前的噪音水平(可能以 dB 为单位)。但我不知道在库中寻找什么。我不想记录噪音。有人可以给我指点看什么课程吗?

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 回答