Android TTS学习——TTS初体验(中)
2013-01-31 19:12
253 查看
from: http://blog.csdn.net/ichliebephone/article/details/5802044
Java文件的编写:
要使用TTS得实现OnInitListener接口
[java] view plaincopy
public class AndroidTTSDemoFirst extends Activity implements OnInitListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
//实现TTS初始化接口
@Override
public void onInit(int status) {
// TODO Auto-generated method stub
}
}
接着定义好下面要用到的几个变量:
[java] view plaincopy
private EditText inputText = null;
private Button speakBtn = null;
private static final int REQ_TTS_STATUS_CHECK = 0;
private static final String TAG = "TTS Demo";
private TextToSpeech mTts;
虽然安装Android1.6版本及之后的Android机器都默认安装了TTS引擎,但某些设备可能会因为存储容量的限制而缺少安装和语言对应的资源文件,因此在使用TTS前,得先要检查是否安装了TTS语言数据,在onCreate函数中添加以下内容:
[java] view plaincopy
//检查TTS数据是否已经安装并且可用
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, REQ_TTS_STATUS_CHECK);
这里启动一个新的Intent去检查TTS数据是否已经安装,我们根据其返回的结果进行处理,如下所示:
[java] view plaincopy
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == REQ_TTS_STATUS_CHECK)
{
switch (resultCode) {
case TextToSpeech.Engine.CHECK_VOICE_DATA_PASS:
//这个返回结果表明TTS Engine可以用
{
mTts = new TextToSpeech(this, this);
Log.v(TAG, "TTS Engine is installed!");
}
break;
case TextToSpeech.Engine.CHECK_VOICE_DATA_BAD_DATA:
//需要的语音数据已损坏
case TextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_DATA:
//缺少需要语言的语音数据
case TextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_VOLUME:
//缺少需要语言的发音数据
{
//这三种情况都表明数据有错,重新下载安装需要的数据
Log.v(TAG, "Need language stuff:"+resultCode);
Intent dataIntent = new Intent();
dataIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(dataIntent);
}
break;
case TextToSpeech.Engine.CHECK_VOICE_DATA_FAIL:
//检查失败
default:
Log.v(TAG, "Got a failure. TTS apparently not available");
break;
}
}
else
{
//其他Intent返回的结果
}
}
如果返回CHECK_VOICE_DATA_PASS表示检查成功,可以新建一个 TextToSpeech ,否则就去下载 TTS数据。
Java文件的编写:
要使用TTS得实现OnInitListener接口
[java] view plaincopy
public class AndroidTTSDemoFirst extends Activity implements OnInitListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
//实现TTS初始化接口
@Override
public void onInit(int status) {
// TODO Auto-generated method stub
}
}
接着定义好下面要用到的几个变量:
[java] view plaincopy
private EditText inputText = null;
private Button speakBtn = null;
private static final int REQ_TTS_STATUS_CHECK = 0;
private static final String TAG = "TTS Demo";
private TextToSpeech mTts;
虽然安装Android1.6版本及之后的Android机器都默认安装了TTS引擎,但某些设备可能会因为存储容量的限制而缺少安装和语言对应的资源文件,因此在使用TTS前,得先要检查是否安装了TTS语言数据,在onCreate函数中添加以下内容:
[java] view plaincopy
//检查TTS数据是否已经安装并且可用
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, REQ_TTS_STATUS_CHECK);
这里启动一个新的Intent去检查TTS数据是否已经安装,我们根据其返回的结果进行处理,如下所示:
[java] view plaincopy
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == REQ_TTS_STATUS_CHECK)
{
switch (resultCode) {
case TextToSpeech.Engine.CHECK_VOICE_DATA_PASS:
//这个返回结果表明TTS Engine可以用
{
mTts = new TextToSpeech(this, this);
Log.v(TAG, "TTS Engine is installed!");
}
break;
case TextToSpeech.Engine.CHECK_VOICE_DATA_BAD_DATA:
//需要的语音数据已损坏
case TextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_DATA:
//缺少需要语言的语音数据
case TextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_VOLUME:
//缺少需要语言的发音数据
{
//这三种情况都表明数据有错,重新下载安装需要的数据
Log.v(TAG, "Need language stuff:"+resultCode);
Intent dataIntent = new Intent();
dataIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(dataIntent);
}
break;
case TextToSpeech.Engine.CHECK_VOICE_DATA_FAIL:
//检查失败
default:
Log.v(TAG, "Got a failure. TTS apparently not available");
break;
}
}
else
{
//其他Intent返回的结果
}
}
如果返回CHECK_VOICE_DATA_PASS表示检查成功,可以新建一个 TextToSpeech ,否则就去下载 TTS数据。
相关文章推荐
- Android TTS学习——TTS初体验
- Android TTS学习——TTS初体验(上)
- Android TTS学习——TTS初体验(下)
- Android TTS学习--使用中文语音
- Android TTS学习——用五种外语说出“我爱你”
- Android TTS 学习
- Android TTS学习——独特你的名字
- 学习Android推送功能笔记(5)---Mina初体验
- Android TTS学习 连续朗读
- Android TTS学习——总结
- android学习初体验-环境配置
- Android TTS学习(补充)--我能说中文
- Android开发学习之路--MediaPlayer之简单音乐播放器初体验
- Android TTS学习(补充)--我能说中文
- Android TTS学习——继续爱的表白
- Android TTS学习——保存对你的喜欢
- Android开发学习之路--MediaPlayer之简单音乐播放器初体验
- Android群英传学习——第五章、Android Scroll分析
- 【第一行代码-Android】学习(一)及在studio的迁移(5)存储数据
- Android中数据库的使用(学习笔记)