2012-03-30 27 views
5

documentation nói "Kiểm tra xem động cơ TTS có đang bận không."Trong trường hợp nào TextToSpeech.isSpeaking() trả về đúng?

Nhưng tôi chỉ thực hiện một cuộc gọi đến isSpeaking() trong một onUtteranceCompletedListener, nơi tôi có ít nhất 10 lời phát biểu đang chờ và trong none trong số họ đã làm tôi nhận true.

Giả sử rằng isSpeaking() thực sự hoạt động như tài liệu, tôi phải kết luận rằng tôi đang gọi nó không chính xác.

Các điểm trong đó gọi TextToSpeech.isSpeaking() trả lại kết quả hợp lệ là gì?

Trả lời

1

trả lời bản thân mình, nhờ đến qua câu hỏi này (cũng chưa được trả lời):

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

Các source code của lớp TtsService cho thấy:

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

Có nghĩa là động cơ TTS không chỉ phải nói nhưng kích thước hàng đợi phát âm của nó phải lớn hơn 0.

Các vấn đề liên quan