2

我希望我的应用程序对加载声音做出反应,就像拍手一样。问题是,即使以在配置模式中设置的可变getMaxAmplitude()语音正常说话,它也达到最大值 32762 。>= my "allMaxAmpli"

媒体记录器设置如下:

mrec = new MediaRecorder();
mrec.setAudioSource(MediaRecorder.AudioSource.MIC);
mrec.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mrec.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
[..]
mrec.setOutputFile(audiofile.getAbsolutePath());
mrec.prepare();
mrec.start();

检查是这样完成的(抽象):

int maxAmp = mrec.getMaxAmplitude();
if (maxAmp >= CalibAmp)
  Log.v("ID", "Max Amp is greater!");

我错过了什么?

有没有其他方法可以测量音量,或者增加 getMaxAmplitude 的限制?我考虑过使用 AudioRecord,但后来我必须手动计算幅度。我想从中拯救自己。

在考虑发布之前,我搜索了很多,但我找不到任何东西。任何帮助,将不胜感激。

/编辑:如果我根据振幅计算分贝,这会得到其他值吗?这可能会解决问题。

/Edit2:我根据幅度计算了分贝,但问题仍然存在,因为幅度一直很高。没人有主意吗?:/

/Edit3:在测试了其他一些应用程序之后,这似乎是 Android 的普遍问题。这就是为什么每个声音测量应用程序都是免费的。

4

0 回答 0