Почему TextToSpeech не инициализируется в этом классе? - PullRequest
0 голосов
/ 21 июня 2020

У меня есть класс, который должен озвучивать описание данной записи из глоссария. Код такой:

package college.projects.glossary;

import android.content.Intent;
import android.os.Build;
import android.speech.tts.TextToSpeech;
import android.widget.Toast;

import java.util.Locale;

public class GlossaryEntryPlayer extends Object implements IGlossaryEntryPlayer, TextToSpeech.OnInitListener {

    protected MyActivity activity_;

    private TextToSpeech textToSpeech_ = null;

    @Override
    public void onInit(int status) {
        if (status == TextToSpeech.SUCCESS) {
            int result = textToSpeech_.setLanguage(Locale.US);
            if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
                MyUtils.UIDebug(this.activity_.getApplicationContext(), "Language support is bad");
            } else {
                MyUtils.UIDebug(this.activity_.getApplicationContext(), "Language support is OK");
            }
        } else {
            MyUtils.UIDebug(this.activity_.getApplicationContext(), "TextToSpeech is bad");
        }
    }

    public GlossaryEntryPlayer(MyActivity activity) {
        super();
        this.activity_ = activity;
        textToSpeech_ = new TextToSpeech(this.activity_, this);
    }

    @Override
    public boolean play(GlossaryEntry entry) {
        if (null != entry) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                textToSpeech_.speak(entry.getDescription(), TextToSpeech.QUEUE_FLUSH, null, null);
                return true;
            } else {
                MyUtils.UIDebug(this.activity_.getApplicationContext(), "Version is bad");
                return false;
            }
        } else {
            return false;
        }
    }

}

Проблема в onInit(), так как я всегда получаю сообщение «TextToSpeech is bad» . Что не так с этим классом? Android используется эмулятор 5.1 WVGA API 30, RAM 512 МБ, язык по умолчанию - US-ENG. Ноутбук, на котором работает Android Studio, - это Lenovo AMD A4-G50, 4 ГБ оперативной памяти, 1,8 ГГц

...