我有String
s的編號,每個包含5個句子。現在,我想一次一個地將它們傳遞給android文本到語音。這意味着,第一個字符串被傳遞給引擎,第二個文本應該在引擎完成講話後傳遞。以下是我的代碼。閱讀TTS中「字符串」的數量
List<String>textCollection = new ArrayList<String>();
//Add sentences to 'textCollection '. Code removed//
for(int i=0;i<textCollection.size();i++)
{
while(tts.isSpeaking())
{
}
Toast.makeText(Talk.this, ""+i, Toast.LENGTH_LONG).show();
new SpeakTheText().execute(textCollection.get(i));
}
//This class will speak the text
private class SpeakTheText extends AsyncTask<String,Void,String>
{
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
tts.speak(params[0], TextToSpeech.QUEUE_FLUSH, null);
return null;
}
}
現在,不幸的是,發生了什麼是意外的。語音引擎只是從這裏到那裏講文字,而不是爲了!它從不說第一個文本,只是從某個地方選擇一個文本並閱讀它。這是爲什麼發生?請幫忙。
並刪除手動循環? –
TextToSpeech.QUEUE_FLUSH刪除此。 – Harshid