,,Android中使用TextToSpeech的方法

,,Android中使用TextToSpeech的方法

本文主要介绍了TextToSpeech在Android中的使用。通过初始化语音,这是一个异步操作。初始化完成后,调用oninitListener。让我们看看边肖的具体示例代码。

前言

一年前和朋友一起买了至少一个英文APP,模仿一个APP实现单词的功能。一开始用的是TextToSpeech,后来觉得声音不够好,就用了第三方。

APP初稿如图:

实现

1.初始化语音。这是一个异步操作。初始化后调用oninitListener(第二个参数)。

TextToSpeech mTts=new TextToSpeech(this,this);

2.实现TextToSpeech。OnInitListener

注意:语言可能不可用。

//实现TextToSpeech。OnInitListener .

公共void onInit(int状态){

if (status==TextToSpeech。成功){

//将首选语言设置为中文。请注意,该语言可能不可用,并且结果会表明这一点

int result=mTts.setLanguage(区域设置。中国);

if (result==TextToSpeech。LANG_MISSING_DATA ||

result==TextToSpeech。LANG_NOT_SUPPORTED) {

//缺少语言数据或不支持该语言。

Log.e(标签,'缺少语言数据或不支持该语言');

}否则{

//检查文档中其他可能的结果代码。

//例如,语言可能适用于区域设置,但不适用于指定的国家和变体。

//TTS引擎已成功初始化。

//允许用户按下按钮,使应用程序再次发声。

magainbutton . set enabled(true);

}

}否则{

//初始化失败

Log.e(标签,'初始化失败');

}

}

3.写一个阅读方法,需要的时候会触发(比如点击事件)

TextToSpeech的speak方法有两个重载。

朗读方法

speak(CharSequence text,int queueMode,Bundle params,String uttance id);

第二个参数queueMode用于指定发音队列模式,有两种模式可供选择。

TextToSpeech。QUEUE_FLUSH:在这种模式下,当有新任务时,当前的语音任务会被清除,执行新的语音任务。

(2)TextToSpeech。QUEUE_ADD:在这种模式下,新的语音任务会放在语音任务之后,新的语音任务要等到前一个语音任务完成后才会执行。

将语音录制为音频文件。

synthesizeToFile(CharSequence文本,Bundle参数,File文件,字符串uttanceid);

private void sayHello() {

String hello=' Hellow

//TextToSpeech的speak方法有两个重载。

//大声朗读的方法。

//speak(CharSequence text,int queueMode,Bundle params,String uttance id);

//将语音录制为音频文件

//synthesizeToFile(char sequence text,Bundle params,File file,String ut anceid);

//第二个参数queueMode用于指定发音队列模式,选择两种模式。

//(1)TextToSpeech。QUEUE_FLUSH:在这种模式下,当有新任务时,当前的语音任务会被清除,执行新的语音任务。

//(2)TextToSpeech。QUEUE_ADD:在这种模式下,新的语音任务会放在语音任务之后,

//等到上一个语音任务完成后,再执行新的语音任务。

mTts.speak(你好,

TextToSpeech。队列刷新,

null);

}

4.请记住在其生命周期中结束活动。

@覆盖

public void onDestroy() {

//结束生命周期

如果(MTT!=null) {

mtts . stop();

mtts . shut down();

}

super . on destroy();

}

源码

SpeechActivity.java

公共类SpeechActivity扩展Activity实现TextToSpeech。OnInitListener {

private static final String TAG=' speech demo ';

私有TextToSpeech mTts

私人纽扣mButton

@覆盖

public void on create(Bundle saved instancestate){

super . oncreate(savedInstanceState);

setContentView(r . layout . text _ to _ speech);

//初始化语音。这是一个异步操作。初始化后调用oninitListener(第二个参数)。

mTts=new TextToSpeech(this,this);

mButton=(Button)findViewById(r . id . again _ Button);

//触发器

mButton.setOnClickListener(新视图。OnClickListener() {

公共void onClick(视图v) {

say hello();

}

});

}

@覆盖

public void onDestroy() {

//结束生命周期

如果(MTT!=null) {

mtts . stop();

mtts . shut down();

}

super . on destroy();

}

//实现TextToSpeech.OnInitListener。

公共void onInit(int状态){

if (status==TextToSpeech。成功){

//将首选语言设置为中文。请注意,该语言可能不可用,并且结果会表明这一点

int result=mTts.setLanguage(区域设置。中国);

if (result==TextToSpeech。LANG_MISSING_DATA ||

result==TextToSpeech。LANG_NOT_SUPPORTED) {

//缺少语言数据或不支持该语言。

Log.e(标签,'缺少语言数据或不支持该语言');

}否则{

//检查文档中其他可能的结果代码。

//例如,语言可能适用于区域设置,但不适用于指定的国家和变体。

//TTS引擎已成功初始化。

//允许用户按下按钮,使应用程序再次发声。

magainbutton . set enabled(true);

}

}否则{

//初始化失败

Log.e(标签,'初始化失败');

}

}

private void sayHello() {

hello=‘上当你不吃鱼’;

//TextToSpeech的speak方法有两个重载。

//大声朗读的方法。

//speak(CharSequence text,int queueMode,Bundle params,String uttance id);

//将语音录制为音频文件

//synthesizeToFile(char sequence text,Bundle params,File file,String ut anceid);

//第二个参数queueMode用于指定发音队列模式,选择两种模式。

//(1)TextToSpeech。QUEUE_FLUSH:在这种模式下,当有新任务时,当前的语音任务会被清除,执行新的语音任务。

//(2)TextToSpeech。QUEUE_ADD:在这种模式下,新的语音任务会放在语音任务之后,

//等到上一个语音任务完成后,再执行新的语音任务。

mTts.speak(你好,

TextToSpeech。队列刷新,

null);

}

}

text_to_speech.xml

linear layout xmlns:Android=' http://schemas . Android . com/apk/RES/Android '

安卓:方向='垂直'

Android:layout _ width=' match _ parent '

Android:layout _ height=' match _ parent '

button Android:id=' @ id/again _ button '

Android:layout _ width=' wrap _ content '

Android:layout _ height=' wrap _ content '

android:enabled='false' /

/线性布局

这篇关于Android中TextToSpeech使用的文章就到这里了。有关adroid TextToSpeech使用的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • windowsandroid手机版下载,windowsandroid安装apk
  • windowsandroid手机版下载,windowsandroid安装apk,WindowsAndroid 安装教程详解
  • android调用webview方法,androidwebview是什么,Android 中 WebView 的基本用法详解
  • android传感器高级编程,Android传感器,Android编程之光线传感器用法详解
  • android.app.Dialog,android自定义dialog对话框,Android开发笔记之-Dialog的使用详解
  • android 图片视频轮播框架,androidlayout轮播图,Android实现炫酷轮播图效果
  • android里的viewpager,安卓自定义view流程,Android自定义引导玩转ViewPager的方法详解
  • android里的viewpager,android viewpager详解
  • android里的viewpager,android viewpager详解,Android自定义超级炫酷的ViewPage指示器
  • android调用webview方法,androidwebview是什么
  • android设置控件宽度,android获取屏幕宽度和高度
  • android设置控件宽度,android获取屏幕宽度和高度,Android中获取控件宽高的4种方法集合
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程,android蓝牙简单开发示例教程
  • android菜单栏,android菜单控件
  • 留言与评论(共有 条评论)
       
    验证码: