好的,我正在查看下面的代码片段。我看到正在创建一个类实例:recorder = new AudioRecord(...
然后我看到我们已经在recorder.startRecording();
内部的方法的调用不是一个无限循环。这怎么可能是一段代码呢?
private void startRecording(){//<--** this method is called from below **
recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
RECORDER_SAMPLERATE, RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING, bufferSize);
recorder.startRecording();//<--already in this method, endless loop???
isRecording = true;
recordingThread = new Thread(new Runnable() {
@Override
public void run() {
writeAudioDataToFile();
}
},"AudioRecorder Thread");
recordingThread.start();
}
答案 0 :(得分:3)
正如@ chuthan20指出并引用given code,上面的方法来自RecorderActivity
,而它正在调用AudioRecord
中的方法(同名),所以不,不是递归的,而不是无限循环,只是发生了两个类具有相同名称的方法。
public class RecorderActivity extends Activity {
...
private AudioRecord recorder = null;
...
}
答案 1 :(得分:0)
查看完整代码(上下文就是一切!),不,这不是一个无限循环。 Activity的本地(私有)startRecording方法正在创建AudioRecord类的实例并调用该对象的startRecording方法。两个不同的类。