在Android中,TTS没有正确地从IU Thread循环?

时间:2015-01-17 16:23:39

标签: java android android-service text-to-speech google-text-to-speech

始终讲最后的元素。但我想首先说孟加拉国,然后是印度,然后巴马也最终说塔纳纳。当我运行我的代码时,总是说Tanana。

我的代码:

int wordNumber=0;
String[] splitspeech = { "Bangladesh", "India", "Barma",
                        "Banana", "Tanana" };
                do {
                    reader(splitspeech[wordNumber]);
                    wordNumber++;
                } while (wordNumber < splitspeech.length);


public void reader(final String msg) {
        Log.e("reader output:", "msg:" + msg);
        TextToSpeech textReader = new TextToSpeech(getApplicationContext(),
                new OnInitListener() {

                    @Override
                    public void onInit(int status) {
                        HashMap<String, String> map = new HashMap<String, String>();
                        map.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID,
                                "Hello");

                        textReader.speak(msg,

                        TextToSpeech.QUEUE_FLUSH, map);

                    }
                });
    }

如何实现这是循环说话。这意味着fisrt首先讲的是孟加拉国的元素,最后讲的是Tanana(最后一个元素)。请帮我。我不知道这很容易。但这对我来说非常复杂。请帮我。谢谢

1 个答案:

答案 0 :(得分:1)

使用QUEUE_ADD代替QUEUE_FLUSH。您正在以这种方式清除TTS队列。