2013-02-04 1 views
4

누구나 내가 텍스트에서 음성으로 힌트를 제공합니까?안드로이드에서 ---- 어떻게하면 텍스트에서 음성으로 말하는 단어를 얻을 수 있습니까?

내 목표는 어떤 단어가 장치에 의해 읽혀지고 있는지 힌트를 제공하는 것입니다. 음성에

텍스트 내 코드는 다음과 같습니다 : -

TextToSpeech tts = new TextToSpeech(this,this); 
if (txtText.getText().toString().length() == 0) 
     tts.speak("You haven't typed text", TextToSpeech.QUEUE_FLUSH, null); 
    else 
     tts.speak(txtText.getText().toString(), TextToSpeech.QUEUE_FLUSH,null); 

감사합니다.

답변

1

단어를 한 마디 나누고 언급 한 단어를 강조 표시해야합니다. 예 : 우리는 "당신은 텍스트를 입력하지 않은"와 같은 문장을 가지고가는 경우 :

tts.speak("You", TextToSpeech.QUEUE_FLUSH, null); 
/*Change size or color of "You" in your TextView for e.g.*/ 
tts.speak("haven't", TextToSpeech.QUEUE_FLUSH, null); 
/*Change size or color of "haven't" in your TextView for e.g.*/ 
tts.speak("typed", TextToSpeech.QUEUE_FLUSH, null); 
/*Change size or color of "typed" in your TextView for e.g.*/ 

... 

당신은 공백으로 구분 된 단어의 문자열 배열을 반환 txtText.getText().toString().Split" ";를 사용하여이 작업을 수행 할 수 있습니다. 그런 다음이 배열을 반복하여 어떤 단어가 쓰여 있는지를 확인하고 TextView에서 this과 같이 강조 표시합니다.

+0

감사합니다. TextToSpeech.QUEUE_ADD를 사용했지만 TextToSpeech.QUEUE_ADD가 몇 밀리 초가 걸리고 Text가 굵게 표시되어 내 문제가 해결되지 않았습니다. – patel

+0

Text Bold을 설정할 때'Thread.Sleep (/ * few millis * /);'를 사용하여 조정하십시오. –

+0

그러나 QUEUE_ADD를 사용하는 이유는 무엇입니까? –