from:http://blog.csdn.net/ichliebephone/article/details/5802044

当TTS数据检测成功创建一个TextToSpeech后,就会调用接口OnInitListener中定义的回调函数

 

[java]  view plain copy
  1.  //实现TTS初始化接口  
  2. @Override  
  3. public void onInit(int status) {  
  4.     // TODO Auto-generated method stub  
  5.     //TTS Engine初始化完成  
  6.     if(status == TextToSpeech.SUCCESS)  
  7.     {  
  8.         int result = mTts.setLanguage(Locale.US);  
  9.         //设置发音语言  
  10.         if(result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED)  
  11.         //判断语言是否可用  
  12.         {  
  13.             Log.v(TAG, "Language is not available");  
  14.             speakBtn.setEnabled(false);  
  15.         }  
  16.         else  
  17.         {  
  18. mTts.speak("This is an example of speech synthesis.", TextToSpeech.QUEUE_ADD, null);  
  19.             speakBtn.setEnabled(true);  
  20.         }  
  21.     }  
  22.       
  23. }  

 

在这个回调函数里,我们设置语言,然后就可以进行使用 TTS引擎进行操作了。

创建一个TextToSpeech是需要占用资源的,因此我们要适时的释放这个资源:

 

[java]  view plain copy
  1. @Override  
  2. protected void onPause() {  
  3.     // TODO Auto-generated method stub  
  4.     super.onPause();  
  5.     if(mTts != null)  
  6.         //activity暂停时也停止TTS  
  7.     {  
  8.         mTts.stop();  
  9.     }  
  10. }  
  11.   
  12. @Override  
  13. protected void onDestroy() {  
  14.     // TODO Auto-generated method stub  
  15.     super.onDestroy();  
  16.     //释放TTS的资源  
  17.     mTts.shutdown();  
  18.     }  

 

最后,在onCreate函数中设置 EditText和Button的使用:

 

[java]  view plain copy
  1.      inputText = (EditText)findViewById(R.id.inputText);  
  2.      speakBtn = (Button)findViewById(R.id.speakBtn);          
  3.   inputText.setText("This is an example of speech synthesis.");  
  4.      speakBtn.setOnClickListener(new OnClickListener() {  
  5.   
  6. public void onClick(View v) {  
  7.     // TODO Auto-generated method stub  
  8.     mTts.speak(inputText.getText().toString(), TextToSpeech.QUEUE_ADD, null);  
  9.     //朗读输入框里的内容  
  10. }  
  11. });  

 

至此,我们的 Demo就完成了,当启动程序后,首先会朗读“This is an example of speech synthesis in English. ”,然后你在EditText中输入内容,点击Speak按钮就能把内容给朗读出来。

文章对应的完整代码例子可以在这里下载:

http://download.csdn.net/source/2610740

注:文章参加“ 首届Google暑期大学生博客分享大赛——2010 Andriod篇

更多相关文章

  1. C语言函数的递归(上)
  2. Android(安卓)实用类
  3. 个性缩放图片NinePatchDrawable
  4. android(11)_文件操作读取模式
  5. Android中给Spinner或ListView添加数据
  6. Android(安卓)VelocityTracker的使用
  7. android Activity 清空焦点
  8. Android(安卓)textview获取选中的内容
  9. android 图片处理大全

随机推荐

  1. Android(安卓)四大组件 简介
  2. Android设计模式系列(1)--SDK源码之组合
  3. Android数字签名
  4. 懒骨头的Android文档备份1:建造你的第一个
  5. Android(安卓)Mediacodec硬解H264并显示
  6. Android 微信分享操作后 在当前界面提示
  7. Android PinyinIME 源码笔记 -- 1. 底层
  8. Android事件总线(三)otto用法全解析
  9. Android(安卓)apk快速定位、灰色按钮克星
  10. Android屏幕适配小技巧swdp