2012-03-30 10 views
5

Il documentation dice "Controlla se il motore TTS è occupato a parlare."In quali circostanze TextToSpeech.isSpeaking() restituisce true?

Ma ho appena implementato una chiamata a isSpeaking() in un onUtteranceCompletedListener, dove ho almeno 10 espressioni in sospeso e in nessuno di loro ha fatto ho ricevuto true.

Supponendo che isSpeaking() funzioni effettivamente come documentato, devo concludere che lo chiamo in modo errato.

Quali sono i punti in cui chiamare TextToSpeech.isSpeaking() restituisce un risultato valido?

risposta

1

Rispondere me stesso, grazie a imbattersi in questa domanda (anche senza risposta):

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

La source code della classe TtsService mostra:

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

Il che significa che il motore TTS non solo deve stai parlando ma le dimensioni della coda delle frasi devono essere maggiori di 0.

Problemi correlati