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
- ¿Alguna api de TTS para Android en turco?
- ¿Cuál es la sintaxis adecuada para el atributo de fonema en el TTS XML de Android?
- Ampliación del motor TTS android
- Android TextToSpeech solo escribe palabras cortas en lugar de pronunciarlas
- Los componentes de IntentReceiver no pueden enlazar servicios
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.
- Android Vietnamita Texto a voz?
- Mejor práctica para especificar la pronunciación para el motor Android TTS?
- OnUtteranceCompleted () perdido si TTS recibido es demasiado largo
- TextToSpeech muestra Null Pointer Exception?
- ¿Cómo usar e importar eSpeak en eclipse?
- ¿Soporta Android TTS el lenguaje de marcado de síntesis de 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);