2012-03-30 9 views
5

Die documentation sagt "Überprüft, ob die TTS-Engine beschäftigt ist zu sprechen."Unter welchen Umständen gibt TextToSpeech.isSpeaking() true zurück?

Aber ich implementiert gerade einen Anruf zu isSpeaking() in einem onUtteranceCompletedListener, wo ich mindestens 10 anhängige Äußerungen haben und in keine von ihnen habe ich erhielt true.

Angenommen, dass isSpeaking() funktioniert tatsächlich als dokumentiert, muss ich feststellen, dass ich es falsch anrufe.

Was sind die Punkte, an denen der Aufruf von TextToSpeech.isSpeaking() ein gültiges Ergebnis zurückgibt?

Antwort

1

Answering mich, Dank für diese Frage zu kommen (auch offen):

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

Die source code der TtsService Klasse zeigt:

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

, die die TTS-Engine nicht nur bedeutet, muss Sprechen, aber die Größe der Äußerungen der Äußerungen muss größer als 0 sein.