getMaxAmplitude()“总是”到达

时间:2011-07-03 00:25:40

标签: android audio media amplitude

我想让我的应用程序对负载声音做出反应,就像拍手一样。问题是,getMaxAmplitude()即使用配置模式中设置为>= my "allMaxAmpli"变量的普通语音进行通话,也达到最大值32762。

媒体录像机设置如下:

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的一般问题。这就是为什么每个声音测量应用程序都是免费的..

0 个答案:

没有答案