我也在活动中使用语音来发短信,而我也在做其他事情。我怎么能等到对文本的发言结束,因为我需要其中的文本。
现在,我得到了onActivityResult文本,它需要一些时间才能得到结果,并且我同时有其他线程在工作。我必须一个接一个地停留,直到得到onActivityresult的结果。这就是我将语音转换为文本的方式。
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.US);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT,
"Hi speak something");
try {
startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);
} catch (ActivityNotFoundException a) {
}
这是onActivityResult
protected void onActivityResult(int requestCode, int resultCode, @Nullable 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);
message=result.get(0);
Log.i("answer", message);
}
break;
}
}
}
}
我需要使用message
在应用程序中工作,但是要花一些时间才能得到写入文本。