java - android setting speech to text for two edit texts -
i have created 2 edit texts. , created 2 buttons. clicking on button, ask user speak , convert speech text , displayed in edit text.
i have called voice text function 2 times. 1 first edit text , other second edit text. displaying error. please me solve problem.
here code:
private void promptspeechinput1() { intent intent = new intent(recognizerintent.action_recognize_speech); intent.putextra(recognizerintent.extra_language_model, recognizerintent.language_model_free_form); intent.putextra(recognizerintent.extra_language, locale.getdefault()); intent.putextra(recognizerintent.extra_prompt, getstring(r.string.speech_prompt)); try { startactivityforresult(intent, req_code_speech_input); } catch (activitynotfoundexception a) { toast.maketext(getapplicationcontext(), getstring(r.string.speech_not_supported), toast.length_short).show(); } } /** * receiving speech input * */ @override protected void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); switch (requestcode) { case req_code_speech_input: { if (resultcode == result_ok && null != data) { arraylist<string> result = data .getstringarraylistextra(recognizerintent.extra_results); txtspeechinput1.settext(result.get(0)); } break; } } } ////////////// private void promptspeechinput2() { intent intent = new intent(recognizerintent.action_recognize_speech); intent.putextra(recognizerintent.extra_language_model, recognizerintent.language_model_free_form); intent.putextra(recognizerintent.extra_language, locale.getdefault()); intent.putextra(recognizerintent.extra_prompt, getstring(r.string.speech_prompt)); try { startactivityforresult(intent, req_code_speech_input); } catch (activitynotfoundexception a) { toast.maketext(getapplicationcontext(), getstring(r.string.speech_not_supported), toast.length_short).show(); } } /** * receiving speech input * */ @override protected void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); switch (requestcode) { case req_code_speech_input: { if (resultcode == result_ok && null != data) { arraylist<string> result = data .getstringarraylistextra(recognizerintent.extra_results); txtspeechinput2.settext(result.get(0)); } break; } } } and error shows on line:
protected void onactivityresult(int requestcode, int resultcode, intent data) {
you redefining onactivityresult method. use 1 instance purpose
/** * receiving speech input , output * */ @override protected void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); switch (requestcode) { case req_code_speech_input: { if (resultcode == result_ok && null != data) { arraylist<string> result = data .getstringarraylistextra(recognizerintent.extra_results); txtspeechinput1.settext(result.get(0)); } break; } case req_code_speech_output: { if (resultcode == result_ok && null != data) { arraylist<string> result = data .getstringarraylistextra(recognizerintent.extra_results); txtspeechinput2.settext(result.get(0)); } break; } } } and modify in promptspeechinput2 method. use different request code i.e. not req_code_speech_input else use req_code_speech_output different value
try { startactivityforresult(intent, req_code_speech_output); } catch (activitynotfoundexception a) { toast.maketext(getapplicationcontext(), getstring(r.string.speech_not_supported), toast.length_short).show(); }
Comments
Post a Comment