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

Java文件的编写:

要使用TTS得实现OnInitListener接口

[java] view plain copy
  1. publicclassAndroidTTSDemoFirstextendsActivityimplementsOnInitListener{
  2. /**Calledwhentheactivityisfirstcreated.*/
  3. @Override
  4. publicvoidonCreate(BundlesavedInstanceState){
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.main);
  7. }
  8. //实现TTS初始化接口
  9. @Override
  10. publicvoidonInit(intstatus){
  11. //TODOAuto-generatedmethodstub
  12. }
  13. }

接着定义好下面要用到的几个变量:

[java] view plain copy
  1. privateEditTextinputText=null;
  2. privateButtonspeakBtn=null;
  3. privatestaticfinalintREQ_TTS_STATUS_CHECK=0;
  4. privatestaticfinalStringTAG="TTSDemo";
  5. privateTextToSpeechmTts;

虽然安装Android1.6版本及之后的Android机器都默认安装了TTS引擎,但某些设备可能会因为存储容量的限制而缺少安装和语言对应的资源文件,因此在使用TTS前,得先要检查是否安装了TTS语言数据,在onCreate函数中添加以下内容:

[java] view plain copy
  1. //检查TTS数据是否已经安装并且可用
  2. IntentcheckIntent=newIntent();
  3. checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
  4. startActivityForResult(checkIntent,REQ_TTS_STATUS_CHECK);

这里启动一个新的Intent去检查TTS数据是否已经安装,我们根据其返回的结果进行处理,如下所示:

[java] view plain copy
  1. protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){
  2. if(requestCode==REQ_TTS_STATUS_CHECK)
  3. {
  4. switch(resultCode){
  5. caseTextToSpeech.Engine.CHECK_VOICE_DATA_PASS:
  6. //这个返回结果表明TTSEngine可以用
  7. {
  8. mTts=newTextToSpeech(this,this);
  9. Log.v(TAG,"TTSEngineisinstalled!");
  10. }
  11. break;
  12. caseTextToSpeech.Engine.CHECK_VOICE_DATA_BAD_DATA:
  13. //需要的语音数据已损坏
  14. caseTextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_DATA:
  15. //缺少需要语言的语音数据
  16. caseTextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_VOLUME:
  17. //缺少需要语言的发音数据
  18. {
  19. //这三种情况都表明数据有错,重新下载安装需要的数据
  20. Log.v(TAG,"Needlanguagestuff:"+resultCode);
  21. IntentdataIntent=newIntent();
  22. dataIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
  23. startActivity(dataIntent);
  24. }
  25. break;
  26. caseTextToSpeech.Engine.CHECK_VOICE_DATA_FAIL:
  27. //检查失败
  28. default:
  29. Log.v(TAG,"Gotafailure.TTSapparentlynotavailable");
  30. break;
  31. }
  32. }
  33. else
  34. {
  35. //其他Intent返回的结果
  36. }
  37. }

如果返回CHECK_VOICE_DATA_PASS表示检查成功,可以新建一个TextToSpeech,否则就去下载TTS数据。

更多相关文章

  1. 开发人员注意——Android(安卓)5.0 API有哪些变化
  2. android中使用百度定位sdk实时的计算移动距离
  3. 安卓 百度语音识别
  4. 计算机技术大牛的博客集
  5. Android下载文件时对MediaScanner的调用
  6. Android(安卓)SQLite数据库判断某张表是否存在的语句
  7. 【Android】 JNI入门 - NDK从入门到精通
  8. Android网络解析

随机推荐

  1. Fedora写给Python的情书
  2. 值得关注的5个Python开源项目
  3. 2分钟理清计算机、Python和Pip的三角关系
  4. 用Python制作3D动画
  5. 如果你也用Win10,真的请备份!
  6. 不看教程,可能更浪费你的时间
  7. 在python中执行shell命令的6种方法
  8. 临摹源码 | 一比一手写Dubbo源码中的SPI(
  9. 最良心的Python安装说明
  10. 小编的2017年度计划及最近改变