主要用到两个包
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
其中必须实现OnInitListener里面的方法
@Override public void onInit(int status) { if(status != TextToSpeech.SUCCESS) { Log.i("TTS_TEST", "TTS engine failed to initialize"); finish(); } else { Log.i("TTS_TEST", "tts engine initialized"); //Do nothing special? } }
?
然后我们就实现 一个文本框输入? 要听的文字 一个是button按钮,只要按住button按钮就可以听到里面的英语了
这里面我们没有自己进行设置,都是默认设置 当然你可以在模拟机的setting设置
?
Intent checkIntent = new Intent(); checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); startActivityForResult(checkIntent, CHECK_TTS_RES);
?
然后就开是设置一个activity,来检测设备安装的tts
protected void onActivityResult(int reqCode, int resCode, Intent data) { if(reqCode == CHECK_TTS_RES) //Result from checkIntent in onCreate { if(resCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) { //Data is good to go! Initialize the TTS instance Log.i("TTS_TEST", "onActivityResult complete"); tts = new TextToSpeech(this, this); } else { //Fail! Let the user install the data Intent installTTSDataIntent = new Intent(); installTTSDataIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA); startActivity(installTTSDataIntent); } } }
?
如果有合适的资源 那么就实例化一个tts 传给button,button就通过这个实例调用speak方法就可以了
OnClickListener mSubmitListener = new OnClickListener() { public void onClick(View v) { //Log the second parameter with the first parameter as the tag. //Note: Window -> Show View... -> Other -> LogCat to view the log in Eclipse Log.i("TTS_TEST", "Button clicked - Attempting to speak"); //On button click, say whatever is in the textField tts.speak(vText.getText().toString(), TextToSpeech.QUEUE_FLUSH, null); } };
?
TextToSpeech.Engine.ACTION_CHECK_TTS_DATA
这里一定要注意TextToSpeech.Engine下的几个常量。
源码来源于网络