我在 Android 中实现此功能时遇到问题...我只需要输出从麦克风重新录制的分贝,这是我无法理解的事情:
public class Noise extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
MediaRecorder recorder=new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
Timer timer=new Timer();
timer.scheduleAtFixedRate(new RecorderTask(recorder), 0, 500);
}
private class RecorderTask extends TimerTask{
TextView risultato=(TextView) findViewById(R.id.risultato_recorder);
private MediaRecorder recorder;
public RecorderTask(MediaRecorder recorder){
this.recorder = recorder;
}
public void run(){
risultato.setText(""+recorder.getMaxAmplitude());
}
}
}
在textview中,只打印第一次的结果,结果为0,然后app crash with: 11-29 14:43:27.133: E/AndroidRuntime(25785): android.view.ViewRoot$CalledFromWrongThreadException: Only the创建视图层次结构的原始线程可以触及其视图。
我四处搜索,但我找不到一个全面的例子......只有很多我不需要的东西和类的例子。我可以解决这个问题吗?