我正在做一个学校项目,我必须“测量”声音,如分贝。我在网上搜索教程等,并找到了一些很棒的脚本。我可以在视觉上看到我的移动设备检测到声音,但我想看到一个数字,声音有多大。
我可以在double
中显示int
或textview
,但这个号码在textview
和integer
或{{double
中不会发生变化1}}本身应该而且确实会改变,但我看不到这一点。也许它没有更新?
这是我主要活动中最重要的代码。
private TextView tv;
double amp = 0.0;
public void run() {
double amp = mSensor.getAmplitudeEMA();
if (mTestMode) updateDisplay(amp);
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mSensor = new SoundMeter();
tv = (TextView) findViewById(R.id.amplitude);
tv.setText(String.valueOf(amp));
mTestMode = true;
start();
}
因此,当我运行此代码时,我在屏幕上看到0.0,但是当我说话时,double amp
应该会改变,但我仍然会看到0.0。
不,检测声音的脚本是有效的,我知道因为你可以看到它,你可以看到动画,声音低时为3条,当声音响亮时有更多条形。
但我的问题是,为什么double amp
更新本身?为什么不改变0.0?
答案 0 :(得分:0)
public void run() {
if (mTestMode) {
double amp = mSensor.getAmplitudeEMA();
tv.setText(String.valueOf(amp));
}
}