1 package com.android.car.messenger.tts; 2 3 import android.content.Context; 4 import android.os.Bundle; 5 import android.speech.tts.TextToSpeech; 6 import android.speech.tts.UtteranceProgressListener; 7 8 /** 9 * Interface for TTS Engine that closely matches {@link TextToSpeech}; facilitates mocking/faking. 10 */ 11 public interface TTSEngine { 12 /** 13 * Initializes engine. 14 * 15 * @param context Context to use. 16 * @param initListener Listener to monitor initialization result. 17 */ initialize(Context context, TextToSpeech.OnInitListener initListener)18 void initialize(Context context, TextToSpeech.OnInitListener initListener); 19 20 /** 21 * @return Whether engine is already initialized. 22 */ isInitialized()23 boolean isInitialized(); 24 25 /** 26 * @see TextToSpeech#setOnUtteranceProgressListener(UtteranceProgressListener) 27 */ setOnUtteranceProgressListener(UtteranceProgressListener progressListener)28 void setOnUtteranceProgressListener(UtteranceProgressListener progressListener); 29 30 /** 31 * @see TextToSpeech#speak(CharSequence, int, Bundle, String) 32 */ speak(CharSequence text, int queueMode, Bundle params, String utteranceId)33 int speak(CharSequence text, int queueMode, Bundle params, String utteranceId); 34 35 /** 36 * @see TextToSpeech#stop() 37 */ stop()38 void stop(); 39 40 /** 41 * @return Whether TTS is playing out currently. 42 */ isSpeaking()43 boolean isSpeaking(); 44 45 /** 46 * Un-initialize engine and release resources. 47 * {@link #initialize(Context, TextToSpeech.OnInitListener)} will need to be called again before 48 * using this engine. 49 */ shutdown()50 void shutdown(); 51 } 52