我正在尝试为我要拼凑的android应用程序实现音频处理框架。当前,在startRecording()方法调用中,AudioRecord实现失败。
我已经阅读了多种实现方法,用于减少或修复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应用程序中显示的textview的实时频率计数。
当前结果是从第一行对象中的AudioRecord对象的构造在对象初始化中调用startRecording()时导致应用程序崩溃。
可以在以下位置找到完整的应用程序/代码: https://github.com/crouther/gizmo