Android TTS学习――TTS初体验(下)

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篇

你可能感兴趣的:(android,学习,tts)