Android(安卓)TTS学习——TTS初体验(下)
16lz
2021-01-24
from:http://blog.csdn.net/ichliebephone/article/details/5802044
当TTS数据检测成功创建一个TextToSpeech后,就会调用接口OnInitListener中定义的回调函数
[java] view plain copy
- //实现TTS初始化接口
- @Override
- public void onInit(int status) {
- // TODO Auto-generated method stub
- //TTS Engine初始化完成
- if(status == TextToSpeech.SUCCESS)
- {
- int result = mTts.setLanguage(Locale.US);
- //设置发音语言
- if(result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED)
- //判断语言是否可用
- {
- Log.v(TAG, "Language is not available");
- speakBtn.setEnabled(false);
- }
- else
- {
- mTts.speak("This is an example of speech synthesis.", TextToSpeech.QUEUE_ADD, null);
- speakBtn.setEnabled(true);
- }
- }
- }
在这个回调函数里,我们设置语言,然后就可以进行使用 TTS引擎进行操作了。
创建一个TextToSpeech是需要占用资源的,因此我们要适时的释放这个资源:
[java] view plain copy
- @Override
- protected void onPause() {
- // TODO Auto-generated method stub
- super.onPause();
- if(mTts != null)
- //activity暂停时也停止TTS
- {
- mTts.stop();
- }
- }
- @Override
- protected void onDestroy() {
- // TODO Auto-generated method stub
- super.onDestroy();
- //释放TTS的资源
- mTts.shutdown();
- }
最后,在onCreate函数中设置 EditText和Button的使用:
[java] view plain copy
- inputText = (EditText)findViewById(R.id.inputText);
- speakBtn = (Button)findViewById(R.id.speakBtn);
- inputText.setText("This is an example of speech synthesis.");
- speakBtn.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- // TODO Auto-generated method stub
- mTts.speak(inputText.getText().toString(), TextToSpeech.QUEUE_ADD, null);
- //朗读输入框里的内容
- }
- });
至此,我们的 Demo就完成了,当启动程序后,首先会朗读“This is an example of speech synthesis in English. ”,然后你在EditText中输入内容,点击Speak按钮就能把内容给朗读出来。
文章对应的完整代码例子可以在这里下载:
http://download.csdn.net/source/2610740
注:文章参加“ 首届Google暑期大学生博客分享大赛——2010 Andriod篇”
更多相关文章
- C语言函数的递归(上)
- Android(安卓)实用类
- 个性缩放图片NinePatchDrawable
- android(11)_文件操作读取模式
- Android中给Spinner或ListView添加数据
- Android(安卓)VelocityTracker的使用
- android Activity 清空焦点
- Android(安卓)textview获取选中的内容
- android 图片处理大全