我使用谷歌的非官方tts api创建了一个TTS应用程序,它工作正常,但api一次只能处理最多100个字符,但我的应用程序可能必须发送包含尽可能多的字符串为300个字符。控制Google TTS API的输入
这里是我的代码
try {
String text = "bonjour comment allez-vous faire";
text=text.replace(" ", "%20");
String oLanguage="fr";
MediaPlayer player = new MediaPlayer();
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.setDataSource("http://translate.google.com/translate_tts?tl=" + oLanguage + "&q=" + text);
player.prepare();
player.start();
} catch (Exception e) {
// TODO: handle exception
}
所以我的问题是
我如何得到它来检查字符串中的字符数和100个字符的限制内只发送完整的单词。
如何检测时,TTS的第一组结束后这样我就可以发送第二,以避免双方的讲话相互重叠
是否有任何需要我使用的AsyncTask这个过程?
完成测试的第一部分,它的工作原理,但我需要从第二次temp.lastIndexOf(“”)后的下一个字符开始计数器,因此没有字符丢失。我怎样才能做到这一点? – Amanni 2012-04-17 11:46:12
计数器变量应声明在活动水平..静态 – MKJParekh 2012-04-17 11:48:56
该计数器重新启动从100代码,但我问的是,如果第一个字符串的100个字符结尾与例如:“有一个很好的da”而不是“有一个美好的一天“,函数lastindexof第一次停在”有一个不错的“。然后我想从“day”重新开始下一个字符串。 – Amanni 2012-04-17 11:58:22