文字转语音(TTS)使用踩的坑(二)
2019-08-16 本文已影响0人
Mingho96
起因
在确保能够播放指定文字后,我又想让它重复播放,重复次数以及间隔时间由我自己定
经过
为达到以上目的,我首先想到的是先监听它播放状态:即播放开始,播放结束,然后定义变量,每次播放完成后根据变量的值决定是否继续播放;每次播放的时候变量自增。
查阅TextToSpeech源码后,了解到通过setOnUtteranceProgressListener()设置它的监听事件:
tts.setOnUtteranceProgressListener(new UtteranceProgressListener() {
@Override
public void onStart(String s) {
Log.i("UPListener------>","onStart()");
}
@Override
public void onDone(String s) {
Log.i("UPListener------>","onDone()");
}
@Override
public void onError(String s) {
}
});
结果
但是发现onStart()和onDone()都没有被调用,怎么办呢,继续在网上查呀!
解决方法
将原来的
tts.speak(content, TextToSpeech.QUEUE_ADD, null);
改成
tts.speak(content, TextToSpeech.QUEUE_ADD, null,"myUtterance");
没错,多加了一个参数:utteranceId,参数值在没有特殊要求下,随便给就行
提示:本文章跟文字转语音(TTS)使用踩的坑(一)是相关联的,如果没阅读过上一篇文章的,建议两篇文章联合阅读,因为这篇文章是建立在上一篇文章基础之上的