2014-05-19 3 views
1

J'ai une application simple qui est capable de parler.Android: parler a échoué: pas lié à tts moteur

Les choses est que je suis cette erreur dans logcat:

TextToSpeech Sucessfully bound to com.ivona.tts 
TextToSpeech speak failed : not bound to TTS engine 

j'ajouter rien de particulier dans le manifeste Android, ne doivent?

code

import java.util.Locale; 

import android.app.Activity; 
import android.os.Bundle; 
import android.speech.tts.TextToSpeech; 
import android.speech.tts.TextToSpeech.OnInitListener; 
import android.util.Log; 

public class Main extends Activity implements OnInitListener{ 

TextToSpeech tts; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    tts = new TextToSpeech(this, this); 

    tts.speak("Hello World", TextToSpeech.QUEUE_FLUSH, null);  
} 

@Override 
protected void onDestroy() { 
    MyTTS.release(); 
    super.onDestroy(); 
} 

@Override 
public void onInit(int status) { 
    if (status == TextToSpeech.SUCCESS) { 
     tts.setLanguage(Locale.getDefault()); 
    } else { 
     Log.e("TTS", "Initialization failed"); 
    } 

} 

} 

Je ne sais pas pourquoi cette erreur se produit. Quelqu'un peut-il m'aider? Merci d'avance

Éditer: Je ne veux pas mettre la méthode speak à l'intérieur de la méthode onInit. Comment puis-je le faire ?

Répondre

2

Vous ne pouvez laisser parler du moteur, après onInit est fait, alors ne suit dans onInit():

if (status == TextToSpeech.SUCCESS) { 
    tts.speak("Hello World", TextToSpeech.QUEUE_FLUSH, null);  

    }