设置SPR.startlistenening()
方法时出现错误,我想连续使用语音识别并根据结果执行任务。
我正在制作一个使用语音识别并针对结果执行特定任务的应用程序:
@Override
protected void onStart() {
super.onStart();
setSPR();
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,1);
SPR.startListening(intent);
}
private void setSPR() {
if (SpeechRecognizer.isRecognitionAvailable(this)){
SpeechRecognizer.createSpeechRecognizer(this);
SPR.setRecognitionListener(new RecognitionListener() {
@Override
public void onReadyForSpeech(Bundle params) {
}
@Override
public void onBeginningOfSpeech() {
}
@Override
public void onRmsChanged(float rmsdB) {
}
@Override
public void onBufferReceived(byte[] buffer) {
}
@Override
public void onEndOfSpeech() {
}
@Override
public void onError(int error) {
}
@Override
public void onResults(Bundle bundle) {
ArrayList<String> results = bundle.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
setRecognitionResults(results.get(0));
}
@Override
public void onPartialResults(Bundle partialResults) {
}
@Override
public void onEvent(int eventType, Bundle params) { }
});
}
}
错误>>>
java.lang.NullPointerException:尝试调用虚拟方法'void android.speech.SpeechRecognizer.startListening(android.content.Intent)' 在一个空对象引用上 com.teamdev.talkingtorch.MainActivity.onStart(MainActivity.java:74)在 android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1341) 在android.app.Activity.performStart(Activity.java:7278)处 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2937)