Как получить OnUtteranceCompleted для вызова? - PullRequest
0 голосов
/ 27 сентября 2011

Я занимался серфингом в Интернете (читал документ для разработчиков Google / Android, читал похожие вопросы от stackoverflow, читал книгу) и очень внимательно следил за примерами. Текст в речь «говорить» прекрасно работает. Но я просто не могу вызвать OnUtteranceCompleted.

Это должно быть так просто, что я не вижу ответа. Пожалуйста помоги! Вот мой код после нескольких взаимодействий.

Или кто-то может быть достаточно любезен, чтобы предоставить полный исходный код (не фрагменты) того, который действительно работает, чтобы увидеть, работает ли он на моем эмуляторе / реальном устройстве?

public class testActivity extends Activity implements OnInitListener, OnUtteranceCompletedListener {
...

protected void checkTtS() {
    Intent checkIntent = new Intent();
    checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
    startActivityForResult(checkIntent, TTS_DATA_CHECK_CODE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
....
   if (requestCode == TTS_DATA_CHECK_CODE) {
        if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
         // success, create the TTS instance
         mTts = new TextToSpeech(this, this);
 ....

 // Implements TextToSpeech.OnInitListener.
 public void onInit(int status) {

    // status can be either TextToSpeech.SUCCESS or TextToSpeech.ERROR.
    if (status == TextToSpeech.SUCCESS) {
        int result = mTts.setLanguage(Locale.FRANCE);
        result = mTts.setOnUtteranceCompletedListener(this);
        HashMap<String, String> params = new HashMap<String, String>();
        params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID,"stringId");
        mTts.speak("Text to Speak",TextToSpeech.QUEUE_FLUSH, params);
 ....

 public void onUtteranceCompleted(String uttId) {
    Toast.makeText(getBaseContext(), "onutterancecompleted", Toast.LENGTH_SHORT).show();
 }

Ответы [ 2 ]

0 голосов
/ 27 сентября 2011

Ваш код, вероятно, должен выглядеть следующим образом:

public void onUtteranceCompleted(String uttId) {
    if (uttId.equals("stringId")) {
        Toast.makeText(getBaseContext(), "onutterancecompleted", Toast.LENGTH_SHORT).show();
    }
 }

И вы также должны взглянуть на эту статью , там есть четкое описание того, как работает onUtteranceCompleted.Надеюсь, это поможет.

0 голосов
/ 27 сентября 2011

проверили ли вы значение int result после вызова setOnUtteranceCompletedListener.

if(result == TextToSpeech.ERROR)

тогда слушатель высказываний не был установлен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...