Android(安卓)TTS学习――TTS初体验(中)
16lz
2021-01-24
from:http://blog.csdn.net/ichliebephone/article/details/5802044
Java文件的编写:
要使用TTS得实现OnInitListener接口
[java] view plain copy- publicclassAndroidTTSDemoFirstextendsActivityimplementsOnInitListener{
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
- //实现TTS初始化接口
- @Override
- publicvoidonInit(intstatus){
- //TODOAuto-generatedmethodstub
- }
- }
接着定义好下面要用到的几个变量:
[java] view plain copy- privateEditTextinputText=null;
- privateButtonspeakBtn=null;
- privatestaticfinalintREQ_TTS_STATUS_CHECK=0;
- privatestaticfinalStringTAG="TTSDemo";
- privateTextToSpeechmTts;
虽然安装Android1.6版本及之后的Android机器都默认安装了TTS引擎,但某些设备可能会因为存储容量的限制而缺少安装和语言对应的资源文件,因此在使用TTS前,得先要检查是否安装了TTS语言数据,在onCreate函数中添加以下内容:
[java] view plain copy- //检查TTS数据是否已经安装并且可用
- IntentcheckIntent=newIntent();
- checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
- startActivityForResult(checkIntent,REQ_TTS_STATUS_CHECK);
这里启动一个新的Intent去检查TTS数据是否已经安装,我们根据其返回的结果进行处理,如下所示:
[java] view plain copy- protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){
- if(requestCode==REQ_TTS_STATUS_CHECK)
- {
- switch(resultCode){
- caseTextToSpeech.Engine.CHECK_VOICE_DATA_PASS:
- //这个返回结果表明TTSEngine可以用
- {
- mTts=newTextToSpeech(this,this);
- Log.v(TAG,"TTSEngineisinstalled!");
- }
- break;
- caseTextToSpeech.Engine.CHECK_VOICE_DATA_BAD_DATA:
- //需要的语音数据已损坏
- caseTextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_DATA:
- //缺少需要语言的语音数据
- caseTextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_VOLUME:
- //缺少需要语言的发音数据
- {
- //这三种情况都表明数据有错,重新下载安装需要的数据
- Log.v(TAG,"Needlanguagestuff:"+resultCode);
- IntentdataIntent=newIntent();
- dataIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
- startActivity(dataIntent);
- }
- break;
- caseTextToSpeech.Engine.CHECK_VOICE_DATA_FAIL:
- //检查失败
- default:
- Log.v(TAG,"Gotafailure.TTSapparentlynotavailable");
- break;
- }
- }
- else
- {
- //其他Intent返回的结果
- }
- }
如果返回CHECK_VOICE_DATA_PASS表示检查成功,可以新建一个TextToSpeech,否则就去下载TTS数据。
更多相关文章
- 开发人员注意——Android(安卓)5.0 API有哪些变化
- android中使用百度定位sdk实时的计算移动距离
- 安卓 百度语音识别
- 计算机技术大牛的博客集
- Android下载文件时对MediaScanner的调用
- Android(安卓)SQLite数据库判断某张表是否存在的语句
- 【Android】 JNI入门 - NDK从入门到精通
- Android网络解析