Я работаю над AudioRecord.Android: 2 задачи один за другим с разницей времени
Требование: я должен сгенерировать тон и воспроизвести тон в течение 0,25 секунды. После этого аудиозапись должна автоматически запускаться и продолжаться в течение 10 секунд. Через 10 секунд запись звука должна быть остановлена.
Я написал код для генерации тональности и записи и воспроизведения звука.
Но я не мог выполнить его с требуемым сроком. Я сталкиваюсь с проблемой нити из-за RecordThread: overflow или java.lang.RuntimeException: не удается создать обработчик внутри потока, который не вызвал Looper.prepare().
genTone(Constants.HEART_TONE_FREQ);
playToneInPhone();
Thread recordThread = new Thread(new Runnable() {
@Override
public void run() {
isRecording=true;
recordingTimer = new RecordingTimer(10000,1000);
recordingTimer.start();
startRecording();
}
});
try {
recordThread.sleep(250);
recordThread.start();
} catch(InterruptedException ie) {
}
RecordingTimer - это CountDownTimer. Может кто-нибудь помочь мне решить эту проблему?
Попробуйте инициализировать метод записи за пределами метода run(). [...] 'playToneInPhone(); recordTimer = новый RecordingTimer (10000,1000); Рекорд записиThread = new [...] ' –
Нет. Это не может быть правильно. Потому что мне нужно запустить таймер записи только после завершения воспроизведения. Во всяком случае, я исправил проблему. Ниже приведен фрагмент кода. – Geetha