Search code examples
androidtext-to-speech

Pause in TTS android


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 any way that I can pause..?


Solution

  • 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);
    

    }