Хорошо, я смотрю фрагмент кода ниже. Я вижу созданный экземпляр класса: recorder = new AudioRecord(...
, тогда я вижу, что вызов метода, который мы уже внутри recorder.startRecording();
, не является бесконечным циклом. Как это может быть рабочий фрагмент кода?Java, это бесконечный цикл?
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();
}
Похоже, запись и запись выполняются на двух отдельных потоках. Почему вы думаете, что это бесконечно? Не прекращается ли запись, когда нет данных для записи? – duffymo
Является ли ваш метод 'private void startRecording()' внутри класса AudioRecord? Может, это другой класс? Edit: Ofcourse это должен быть другой класс, потому что он начинается с 'private', что означает, что вы не сможете вызвать этот метод для объекта. – chuthan20
Можете ли вы показать нам больше кода, возможно, где определен 'recorder' –