找出队列中处理了多少texttospeech'项目'

时间:2018-01-28 14:03:19

标签: java android-studio text-to-speech

我希望我能在这里说清楚。 我有一个带文字的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!");
}

亲切的问候,

麦克

1 个答案:

答案 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;
            }
    }