OnUtteranceCompleted no se llama?
Aunque lo estoy configurando correctamente:
HashMap<String, String> myHashRender = new HashMap<String, String>(); myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "utid"); mTts.speak("Speak something", TextToSpeech.QUEUE_ADD, myHashRender);
además
- ¿Soporta Android TTS el lenguaje de marcado de síntesis de voz?
- Ampliación del motor TTS android
- ¿Alguna api de TTS para Android en turco?
- Mejor práctica para especificar la pronunciación para el motor Android TTS?
- ¿Cuál es la sintaxis adecuada para el atributo de fonema en el TTS XML de Android?
mTts.setOnUtteranceCompletedListener(this);
En la función onInit devolver el éxito. Sin embargo, el onUtteranceCompleted no se llama. Aunque hay preguntas duplicadas, pero no donde podría encontrar la respuesta.
Mi actividad también implementa OnUtteranceCompletedListener.
Por favor ayuda.
- TextToSpeech muestra Null Pointer Exception?
- OnUtteranceCompleted () perdido si TTS recibido es demasiado largo
- ¿Cómo usar e importar eSpeak en eclipse?
- Los componentes de IntentReceiver no pueden enlazar servicios
- Android TextToSpeech solo escribe palabras cortas en lugar de pronunciarlas
- Android Vietnamita Texto a voz?
Llame al setOnUtteranceCompletedListener dentro de la función onInit del objeto tts.
Si desea realizar cambios en la interfaz de usuario en la llamada de la función onUtteranceCompleted, agregue el código dentro de un método runOnUIThread.
Y recuerde agregar el valor de param de Hashmap mientras llama a la función speak ()
Ejemplo:
TextToSpeech tts= new TextToSpeech(context, new OnInitListener() { @Override public void onInit(int status) { mTts.setOnUtteranceCompletedListener(new OnUtteranceCompletedListener() { @Override public void onUtteranceCompleted(String utteranceId) { runOnUiThread(new Runnable() { @Override public void run() { //UI changes } }); } }); } }); HashMap<String, String> params = new HashMap<String, String>(); params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID,"stringId"); tts.speak("Text to Speak",TextToSpeech.QUEUE_FLUSH, params);