我希望我能在这里说清楚。 我有一个带文字的arraylist,我想大声朗读。例如,当列表中有75个对象时,在说出第三个句子后,我想单击“停止”并使用arraylist的第三个位置执行某些操作我无法找到找出texttospeech队列已处理的方法队列3行?
if(!sh.Contents.isEmpty()) {
for (String object: sh.Contents) {
sh.CurChapter += 1;
speech(String.valueOf(sh.CurChapter) + " " + object);
//textToSpeech.speak(substr, TextToSpeech.QUEUE_ADD, null, null)
}
} else {
speech( "Section not found!");
}
亲切的问候,
麦克
答案 0 :(得分:1)
在语音数组循环中,使用position作为utteranceId并设置它:
speak(utterances.get(i), TextToSpeech.QUEUE_ADD, yourBundle, String.valueOf(i))
然后在UtteranceProgressListener
public static final int DO_ACTION_1 = 0;
public static final int DO_ACTION_5 = 4;
@Override
public void onDone(final String utteranceId) {
switch (Integer.valueOf(utteranceId)) {
case DO_ACTION_1:
// do something
break;
case DO_ACTION_5:
// do something else
break;
default:
// do nothing
break;
}
}