【发布时间】:2013-04-17 23:45:14
【问题描述】:
我创建了一个获取 getMaxAmpitude 然后将其转换为分贝的应用程序,但我只能得到 30dB 的范围。
Android 手机是否只有 30dB 的范围,还是我的代码有问题?
public class getMaxAmpitude extends AsyncTask<Void, Float, Void>{
String dB = "";
int ampitude;
float db;
@Override
public Void doInBackground(Void... params) {
while(rec == true){
try{
Thread.sleep(250);
}catch(InterruptedException e){
e.printStackTrace();
}
ampitude = recorder.getMaxAmplitude();
db =(float) (20 * Math.log10(ampitude/700.0));
publishProgress(db);
}
return null;
}
public void onProgressUpdate(Float... progress){
//database.addSoundData(dB);
dB = (progress[0].toString());
【问题讨论】:
-
你对
db =(float) (20 * Math.log10(ampitude/700.0));有什么看法? -
我在玩参考振幅,所以我可以得到一个 0 的起始值。但这并不能回答我的问题