Ich habe ein Problem, ich möchte Android Service nach Text zu sprechen beenden sprechen.Dienst starten, nachdem setOnUtteranceProgressListener aktiviert wurde?
Hier ist mein Code
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) {
}
});;
}
}
Bitte helfen Sie mir ....
Ich bin mir nicht sicher, ob ich das Problem verstehe - warum können Sie den Dienst nicht einfach dort starten, wo Sie die Standardmethode verwenden möchten? http://StackOverflow.com/a/12555333/1256219 – brandall
startService (neue Absicht (this, MyService.class)); Kann nicht Konstruktor ‚Intent (anonym android.speech.tts.utterenceProgressListener, java.lang.Class‘ –
umair
Sie müssen lösen den richtigen Kontext verwenden. Siehe meine Antwort und den Link zur Dokumentation. – brandall