package pkg.BasicTTSinClass;
import java.util.HashMap;
import java.util.Locale;
import android.content.Context;
import android.speech.tts.TextToSpeech;
public class MyTTS
{
private TextToSpeech mTTS;
private OnInitListener onInitListener = null;
public interface OnInitListener
{
public abstract void onInit(int status);
}
public MyTTS(Context context, MyTTS.OnInitListener listener)
{
onInitListener = listener;
mTTS = new TextToSpeech(context, new TextToSpeech.OnInitListener()
{
@Override
public void onInit(int status)
{
onInitListener.onInit(status);
}
});
}
public int setSpeechRate(float speechRate)
{
return mTTS.setSpeechRate(speechRate);
}
public void shutdown()
{
mTTS.shutdown();
}
public int speak(String text, int queueMode, HashMap<String, String>params)
{
return mTTS.speak(text, queueMode, params);
}
public int setLanguage(Locale loc)
{
return mTTS.setLanguage(loc);
}
public int isLanguageAvailable(Locale loc)
{
return mTTS.isLanguageAvailable(loc);
}
}
이걸 Activity 에서
private View.OnClickListener on_Speak = new View.OnClickListener() {
private EditText mWord;
private MyTTS mTts = null;
@Override
public void onClick(View v) {
mWord = (EditText) findViewById(R.id.txtWord);
mTts.speak(mWord.getText().toString(), TextToSpeech.QUEUE_FLUSH, null); // ----> 여기에서 그냥 Force close 가 발생하네요.
}
};
제가 몰 잘못한 걸까요???
activity 에서 mTts를 정의하는게 빠졌네요.
mTts = new TextToSpeech(this, this);