android 小牛技术交流

文字转语音(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)使用踩的坑(一)是相关联的,如果没阅读过上一篇文章的,建议两篇文章联合阅读,因为这篇文章是建立在上一篇文章基础之上的

上一篇下一篇

猜你喜欢

热点阅读