我想知道如何讓程序暫停並在開始另一個事件之前等待事件結束,例如我可以有一段文字到語音,說什麼,然後谷歌語音識別器應該觸發,但是它們同時發射並且使得語音識別器傾聽文本到語音。我試着在這裏搜索一下,發現了一些答案,但他們不是很清楚,任何人都可以幫我解決這個問題嗎?android在等什麼東西
這裏有一個例子代碼,我測試了:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
tts=new TextToSpeech(getApplicationContext(),
new TextToSpeech.OnInitListener() {
@SuppressWarnings("deprecation")
@Override
public void onInit(int status) {
if(status != TextToSpeech.ERROR){
tts.setLanguage(Locale.UK);
tts.speak("Welcome", TextToSpeech.QUEUE_FLUSH, null);
}
}
});
if(!(tts.isSpeaking())){
startVoiceRecognitionActivity();
}
}
private void startVoiceRecognitionActivity()
{
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speak Up");
startActivityForResult(intent, REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK)
{
matches = data.getStringArrayListExtra(
RecognizerIntent.EXTRA_RESULTS);
if (matches.contains("list")){
Intent gotoList = new Intent(MenuActivity.this, ListActivity.class);
startActivity(gotoList);
}
}
super.onActivityResult(requestCode, resultCode, data);
}
非常有用,它沒有解決我的問題,但與您的鏈接和一些搜索,我發現如何做到這一點,非常感謝你這個有用的信息+1 – mrahmat 2014-12-06 10:00:14