android 中的 IU 线程未正确循环 TTS?
TTS is not looping properly from IU Thread in android?
总是说最后的元素。但我想先说孟加拉国,然后是印度,然后是巴尔马,最后还要说塔纳纳语。当我 运行 我的代码总是说 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);
}
});
}
根据循环说话如何实现。这意味着首先说孟加拉国的第一个元素,最后说 Tanana(最后一个元素)。请帮我。我不知道这是否容易。但这对我来说非常复杂。请帮我。谢谢
使用 QUEUE_ADD
而不是 QUEUE_FLUSH
。您正在以这种方式清除 TTS 队列。
总是说最后的元素。但我想先说孟加拉国,然后是印度,然后是巴尔马,最后还要说塔纳纳语。当我 运行 我的代码总是说 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);
}
});
}
根据循环说话如何实现。这意味着首先说孟加拉国的第一个元素,最后说 Tanana(最后一个元素)。请帮我。我不知道这是否容易。但这对我来说非常复杂。请帮我。谢谢
使用 QUEUE_ADD
而不是 QUEUE_FLUSH
。您正在以这种方式清除 TTS 队列。