У меня есть класс, который должен озвучивать описание данной записи из глоссария. Код такой:
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 ГГц