各位大牛好,最近在下在写一个学习语言类的 App,需要 tts 功能去实现对句子的顺序播放,停止,前一句,后一句,循环当前句。
目前对输入的文本进行处理,用字符串数组存储每一句话。Play 按键的代码如下List<String> string = TxtReader.getStringList(inputStream1);
String[] sentenceArray = string.toArray(new String[0]);
SENTENCE = sentenceArray[r].split("(?<=[\n])");
for (int r=1;r<sentenceArray.length;r++){
      for (int i=0; i<SENTENCE.length; i++){
           String toSpeak = SENTENCE[i].toString();
           System.out.println("to speak: " + toSpeak);
           mSpeech.speak(toSpeak,TextToSpeech.QUEUE_ADD,null); //QUEUE_FLUSH not work
            }
}请教一下 rewind, forward, repeat 按键的代码可以借助什么方法来实现吗?

解决方案 »

  1.   

    XxLanguageService service;播放句子都放到service管理
    nextBtn.setOnClickListener(v-> speak(service.getNext());
    repeatBtn.setOnClickListener(v-> speak(service.getCur());
    ......
      

  2.   

    谢谢大牛提供的思路。对 service 管理不熟,后来通过下面这个方式解决了。再次感谢。
        private class ttsUtteranceListener extends UtteranceProgressListener {
            @Override
            public void onStart(String utteranceId) {
                curr ++;
                System.out.println("current sentence: " + curr);
            }
            @Override
            public void onDone(String utteranceId) {        }        @Override
            public void onError(String utteranceId) {        }
        }