Pause in TTS android

后端 未结 2 1395
谎友^
谎友^ 2021-01-02 19:53

I\'m developing an app which would read out the text in the document and I want to add a pause and resume functionality but I can\'t find any pause() method in TTS. Is there

相关标签:
2条回答
  • 2021-01-02 20:25

    the TextToSpeech class has the ability to add a setOnUtteranceCompletedListener (or for api level 15+ setOnUtteranceProgressListener) which will let you attach a listener for when the TTS utterence is completed and then you can start your second utterence, or your pause, or whatever you need..

    0 讨论(0)
  • 2021-01-02 20:38

    There is a way to pause. Just call TextToSpeech.playSilence() see the code below from here.

    It speaks some actual text along with some silence.

    private void playScript()
    {
        Log.d(TAG, "started script");
    // setup
    
    // id to send back when saying the last phrase
    // so the app can re-enable the "speak" button
    HashMap<String, String> lastSpokenWord = new HashMap<String, String>();
    lastSpokenWord.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID,
            LAST_SPOKEN);
    
    // add earcon
    final String EARCON_NAME = "[tone]";
    tts.addEarcon(EARCON_NAME, "root.gast.playground", R.raw.tone);
    
    // add prerecorded speech
    final String CLOSING = "[Thank you]";
    tts.addSpeech(CLOSING, "root.gast.playground",
            R.raw.enjoytestapplication);
    
    // pass in null to most of these because we do not want a callback to
    // onDone
    tts.playEarcon(EARCON_NAME, TextToSpeech.QUEUE_ADD, null);
    tts.playSilence(1000, TextToSpeech.QUEUE_ADD, null);
    tts.speak("Attention readers: Use the try button to experiment with"
            + " Text to Speech. Use the diagnostics button to see "
            + "detailed Text to Speech engine information.",
            TextToSpeech.QUEUE_ADD, null);
    tts.playSilence(500, TextToSpeech.QUEUE_ADD, null);
    tts.speak(CLOSING, TextToSpeech.QUEUE_ADD, lastSpokenWord);
    

    }

    0 讨论(0)
提交回复
热议问题