WEB开发网
开发学院手机开发Android 开发 Android 实现自动朗读(TTS) 阅读

Android 实现自动朗读(TTS)

 2010-03-25 17:02:00 来源:WEB开发网   
核心提示:private TextToSpeech mTts;protected void onActivityResult(int requestCode, int resultCode, Intent data) {if (requestCode == MY_DATA_CHECK_CODE) {if (resultCode

private TextToSpeech mTts;

protected void onActivityResult(

int requestCode, int resultCode, Intent data) {

if (requestCode == MY_DATA_CHECK_CODE) {

if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {

// sess, create the TTS instance

mTts = new TextToSpeech(this, this);

} else {

// missing data, install it

Intent installIntent = new Intent();

installIntent.setAction(

TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);

startActivity(installIntent);

}

}

}

TextToSpeech实体和OnInitListener都需要引用当前Activity的Context作为构造参数。 OnInitListener()的用处是通知系统当前TTS Engine已经加载完成,并处于可用状态。

根据需求设置语言参数:

早在Google I/O大会上,官方给出了一段关于应用这项功能的鲜活体验,将翻译结果直接通过五种不同国家语言的语音输出。加载语言的方法非常简单:

mTts.setLanguage(Locale.US);

上边代码表示当前TTS实体加载美式英语。其参数并没有指示某种语言的名称,而是利用国家代码来表示,这样做的好处是不但可以确定语言的选择,而且可以根据地区的不同而有所区别。例如:英语作为最广泛被应用的语种,在多个不同的地区都有一定的差别。判断当前系统是否支持某个地区的语言资源,可以通过调用isLanguageAvailable()方法的返回值,根据返回值的描述来选择正确的处理方式。让应用某些绚丽功能的应用程序更加健壮,这个是贯穿整个开发过程都要考虑的技术环节。下边是一些应用实例 (androidres) :

mTts.isLanguageAvailable(Locale.UK))

mTts.isLanguageAvailable(Locale.FRANCE))

mTts.isLanguageAvailable(new Locale("spa", "ESP")))

如果返回值是“ TextToSpeech.LANG_COUNTRY_AVAILABLE ” 说明所选择的地区被包含在当前TTS系统中。如果系统中已经创建了TTS实体,那么可以利用isLanguageAvailable()方法来替代 Start “ACTION_CHECK_TTS_DATA ” intent 检测。当无法找到任何可用资源匹配所指定的参数时,将会返回“ TextToSpeech.LANG_MISSING_DATA ”的结果。下边给出另外两个返回其它不同状态信息的例子:

上一页  1 2 3 4 5  下一页

Tags:Android 实现 自动

编辑录入:coldstar [复制链接] [打 印]
赞助商链接