我的要求:要将字符串列表转换为Text to speech。并且每个字符串的开头应该播放声音
问题:每当我运行它时,只有最后一个被执行,并且在字符串之间也没有播放音乐?我应该如何修改,只有当第一个字符串的TexttoSpeech完成时,循环才会转到下一个字符串..
for(int m=0;m<c1;m++)
{
mp = MediaPlayer.create(Web4.this, R.raw.music1);
mp.start();
tts.setOnUtteranceCompletedListener(this);
HashMap<String, String> myHashRender = new HashMap();
myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID,"end of wakeup message ID");
tts.speak(question1[m],TextToSpeech.QUEUE_FLUSH,myHashRender);
tts.speak("Completed", TextToSpeech.QUEUE_ADD, myHashRender);
mp.stop();
}
答案 0 :(得分:2)
将索引存储在一个字段中,只从onUntteranceCompleted()调用下一个speak()(当然第一个除外)。
答案 1 :(得分:0)
尝试在每次通话之间添加延迟,这可能会有所帮助。