2012-03-30 22 views
5

El documentation dice "Comprueba si el motor TTS está ocupado hablando".¿En qué circunstancias devuelve TextToSpeech.isSpeaking() verdadero?

Pero acabo implementado una llamada a isSpeaking() en un onUtteranceCompletedListener, en el que tengo al menos 10 declaraciones pendientes y en ninguno de ellos hizo que recibieron true.

Suponiendo que isSpeaking() en realidad funciona como está documentado, debo concluir que lo estoy llamando incorrectamente.

¿Cuáles son los puntos en los que llama TextToSpeech.isSpeaking() devuelve un resultado válido?

Respuesta

1

Respondiendo a mí mismo, gracias a venir a través de esta pregunta (también sin respuesta):

Problem with isSpeaking() when using Text-to-Speech on Android

El source code de la clase TtsService muestra:

public boolean isSpeaking() { 
    return (mSelf.mIsSpeaking && (mSpeechQueue.size() < 1)); 
} 

Lo que significa que el motor TTS no sólo debe estar hablando pero su tamaño de cola de enunciados debe ser mayor que 0.

Cuestiones relacionadas