Как узнать, когда TTS закончили?

Случайная мысль: блоки хеша, связанные с HashMap, не являются особенно эффективной памятью. Можно хотеть испытать TreeMap как альтернативу и видеть, обеспечивает ли он все еще достаточную производительность.

34
задан gary 16 October 2012 в 18:25
поделиться

1 ответ

Для знания, когда TTS закончен, необходимо звонить setOnUtteranceProgressListener, который имеет 3 метода обратного вызова onStart, onDone и onError тогда включают идентификатор Произнесения в говорить метод

Фрагмент кода

textToSpeech=new TextToSpeech(this, new TextToSpeech.OnInitListener() {
    @Override
    public void onInit(int status) {
        if (status==TextToSpeech.SUCCESS){
            int result=textToSpeech.setLanguage(Locale.ENGLISH);

            if (result==TextToSpeech.LANG_MISSING_DATA||result==TextToSpeech.LANG_NOT_SUPPORTED){
                Log.i("TextToSpeech","Language Not Supported");
            }

            textToSpeech.setOnUtteranceProgressListener(new UtteranceProgressListener() {
                @Override
                public void onStart(String utteranceId) {
                    Log.i("TextToSpeech","On Start");
                }

                @Override
                public void onDone(String utteranceId) {
                    Log.i("TextToSpeech","On Done");
                }

                @Override
                public void onError(String utteranceId) {
                    Log.i("TextToSpeech","On Error");
                }
            });

        }else {
            Log.i("TextToSpeech","Initialization Failed");
        }
    }
});


if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        textToSpeech.speak(text,TextToSpeech.QUEUE_FLUSH,null,TextToSpeech.ACTION_TTS_QUEUE_PROCESSING_COMPLETED);
    }
1
ответ дан 27 November 2019 в 16:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: