Я использую речь к тексту в Деятельности, где я тоже занимаюсь другими делами. Как я мог дождаться окончания речи к тексту, потому что мне нужен текст из нее.
Теперь я получаю текст 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
, но потребуется некоторое время, чтобы получить текст для записи.