我想让它在服务中工作。 所以现在它运作良好。但它有一个问题。 工作后,突然开始了。 我不确定我认为tts还没有完成。 但我不知道源头有什么不对。 请告诉我
听到的是代码。
public class servishuo1 extends Service implements TextToSpeech.OnInitListener {
private TextToSpeech mTts;
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onDestroy() {
if (mTts != null) {
mTts.stop();
mTts.shutdown();
}
super.onDestroy();
}
@Override
public void onStart(Intent intent, int startId) {
mTts = new TextToSpeech(this, this);
speakOut();
}
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS)
{
int result = mTts.setLanguage(Locale.US);
if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED)
{
Log.e("TTS", "This Language is not supported");
}
speakOut();
}
else
{
Log.e("TTS", "Initilization Failed!");
}
}
private void speakOut() {
mTts.speak("hello", TextToSpeech.QUEUE_FLUSH, null);
}
}
答案 0 :(得分:0)
您的代码中有一个错误:
mTts = new TextToSpeech(this, this);
speakOut();
^^^^^^^^^^^ <--- !!!
在使用TextToSpeech.SUCCESS调用onInit回调之前,不应该调用mTts.speak
。