Я пытаюсь реализовать инфраструктуру обработки звука для приложения для Android, которое я собираю вместе.Реализация AudioRecord в настоящее время терпит неудачу при вызове метода startRecording ().
Я прочитал несколько методов реализации для уменьшения или исправления этой проблемы в StackOverflow.К сожалению, ни один из них, похоже, не работает для меня.
dispatcher.addAudioProcessor(new PitchProcessor(PitchProcessor.PitchEstimationAlgorithm.FFT_YIN, 22050, 1024, new PitchDetectionHandler() {
@Override
public void handlePitch(PitchDetectionResult pitchDetectionResult,
AudioEvent audioEvent) {
final float pitchInHz = pitchDetectionResult.getPitch();
runOnUiThread(new Runnable() {
@Override
public void run() {
TextView text = (TextView) findViewById(R.id.textView1);
text.setText("" + pitchInHz);
}
});
}
}));
new Thread(dispatcher,"Audio Dispatcher").start();
Ожидаемый результат - это подсчет частоты в реальном времени, выводимый в текстовое представление, отображаемое в приложении Android.
Текущий результат - этосбой приложения, когда startRecording () вызывается при инициализации объекта из конструкции объекта AudioRecord в объектах первой строки.
ПОЛНОЕ ПРИЛОЖЕНИЕ / КОД МОЖЕТ НАЙТИ: https://github.com/crouther/gizmo