【发布时间】:2016-07-30 18:21:40
【问题描述】:
我有一个问题,我想在 Text to Speech 完成讲话后启动 android 服务。
这是我的代码
HashMap<String, String> myHashAlarm = new HashMap<String, String>();
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_ALARM));
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "SOME MESSAGE");
t1.speak(text, TextToSpeech.QUEUE_FLUSH, myHashAlarm);
t1.speak("I can speak anything",TextToSpeech.QUEUE_ADD, null);
@Override
public void onInit(int status) {
if (status != TextToSpeech.ERROR) {
t1.setLanguage(Locale.US);
t1.setOnUtteranceProgressListener(new UtteranceProgressListener() {
@Override
public void onDone(String utteranceId) {
// Log.d("MainActivity", "TTS finished");
//here i want to start my service
startService(new Intent(this, MyService.class));// but its not working
}
@Override
public void onError(String utteranceId) {
}
@Override
public void onStart(String utteranceId) {
}
});;
}
}
请帮帮我....
【问题讨论】:
-
我不确定我是否理解这个问题 - 为什么你不能在你想使用标准方法的地方启动服务? stackoverflow.com/a/12555333/1256219
-
startService(new Intent(this, MyService.class));无法解析构造函数 'Intent(anonymous android.speech.tts.utterenceProgressListener,java.lang.Class
' -
您需要使用正确的上下文。请参阅我的回答和文档链接。
标签: android service text-to-speech