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