概念

介绍:TextToSpeech将一段文字转换为语音。TextToSpeech是Android系统自带的类,不用导入别的包。

语言:英文Ok,不支持中文

步骤:

  • new TextToSpeech类
  • 初始化TextToSpeech引擎,即重写onInit()方法
  • 设置朗读参数,调用朗读方法speak()
  • 销毁TextToSpeech,调用stop()和shutdown()方法

接口实现代码 

//1.实现接口public class MainActivity extends AppCompatActivity implements TextToSpeech.OnInitListener {private EditText et_voice_content;private Button btn_play;//TextToSpeech类private TextToSpeech tts;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et_voice_content = (EditText) findViewById(R.id.et_voice_content);btn_play = (Button) findViewById(R.id.btn_play);//2.创建对象:参数1(Context),参数2(TextToSpeech.OnInitListener)tts = new TextToSpeech(this, this);btn_play.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//3.设置朗读参数//设置音调,值越大声音越尖(女生),值越小则变为男生,1.0位常规tts.setPitch(1.0f);//设置语速tts.setSpeechRate(0.3f);if (et_voice_content.getText().length() >= 1) {//4.开始朗读tts.speak(et_voice_content.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);} else {Toast.makeText(MainActivity.this,"内容为空", Toast.LENGTH_SHORT).show();}}});}/*** 5.初始化TextToSpeech引擎* status:SUCCESS或ERROR这2个值* setLanguage设置语言,帮助文档里面写了有22种* TextToSpeech.LANG_MISSING_DATA:表示语言的数据丢失。* TextToSpeech.LANG_NOT_SUPPORTED:表示语音不支持* LANG_COUNTRY_AVAILABLE  1 表示本地语音或者方言可用,引申语音不可用*/@Overridepublic void onInit(int status) {if (status == tts.SUCCESS) {//设置使用美式英语朗读int result1 = tts.setLanguage(Locale.US);//设置支持中文,但实现不了//int result2 = tts.setLanguage(Locale.CHINESE);if (result1 == TextToSpeech.LANG_MISSING_DATA|| result1==TextToSpeech.LANG_NOT_SUPPORTED){Toast.makeText(this, "数据丢失或不支持:"+result1+";", Toast.LENGTH_SHORT).show();}}}/*** 6.关闭tts*/@Overrideprotected void onDestroy() {super.onDestroy();if (tts != null) {//停止tts.stop();//关闭tts.shutdown();}}}

​​​​​​​匿名内部类实现

textToSpeech= new TextToSpeech(this, new TextToSpeech.OnInitListener() {@Overridepublic void onInit(int status) {if(status==textToSpeech.SUCCESS){int result=textToSpeech.setLanguage(Locale.US);if(result==TextToSpeech.LANG_MISSING_DATA||result==TextToSpeech.LANG_NOT_SUPPORTED){Toast.makeText(MainActivity.this, "onInit failure", Toast.LENGTH_LONG).show();}}}
});

Android之TextToSpeech类相关推荐

  1. Android Studio开发安卓app TTS学习,使用TextToSpeech类完成输入文字播放中文

    安卓TextToSpeech Android允许您将文本转换为语音.您不仅可以转换它,还可以用多种不同的语言说文本.Android 为此提供了TextToSpeech类.为了使用此类,您需要实例化此类 ...

  2. android 实现自定义监听接口,Android在自定义类中实现自定义监听器方式

    Android在自定义类中实现自定义监听器方式 发布时间:2020-08-31 06:19:39 来源:脚本之家 阅读:203 作者:Simon_Qi 监听器可以说是Android开发中最常用的东西之 ...

  3. Android Studio新建类头部注释和添加函数注释模板及快捷键

    一,Android Studio新建类头部注释 是不是有时候看到这个很心烦 其实Studio中有设置修改这些注释模板的信息的功能 其实很简单,只需要两步: 1.打开Setting设置面板,找到File ...

  4. android sharedpreferences工具类

    今天,简单讲讲如何写一个sharedpreferences的工具类. 很简单,把一些重复的操作封装在工具类里,其他地方调用就可以.在网上搜索了比较多的资料,找到一个比较好的工具类. 参考文章:http ...

  5. Android中Cursor类的概念和用法

    使用过 SQLite数据库的童鞋对 Cursor 应该不陌生,加深自己和大家对Android 中使用 Cursor 的理解. 关于 Cursor 在你理解和使用 Android Cursor 的时候你 ...

  6. Android的Window类详解

    Android的Window类(一) Android的GUI层并不复杂.它的复杂度类似于WGUI这类基于布局和对话框的GUI,与MFC.Qt等大型框架没有可比性,甚至飞漫魏永明的MiniGUI都比它复 ...

  7. android sharedpreferences 工具类,android sharedpreferences工具类

    释放双眼,带上耳机,听听看~! 今天,简单讲讲如何写一个sharedpreferences的工具类. 很简单,把一些重复的操作封装在工具类里,其他地方调用就可以.在网上搜索了比较多的资料,找到一个比较 ...

  8. android新闻管理,Android资讯新闻类App(头条、网易等),频道管理集成之数据库存储...

    Android资讯新闻类App(头条.网易等),频道管理集成之数据库存储 发布时间:2019-01-16 19:55, 浏览次数:305 , 标签: Android App * 经常看新闻类的大家都知 ...

  9. android动画送礼物,Android仿直播类app赠送礼物功能

    直播界面 实现的是播放本地的视频文件: /** * 直播界面,用于对接直播功能 */ public class LiveFrag extends Fragment { private ImageVie ...

最新文章

  1. C:模块化程序设计 以及数组
  2. 新代系统9服务器警报,新代系统OP、MOT警报一览表
  3. windows2003 服务器安全配置的建议
  4. 一个jstack/jmap等不能用的case
  5. knx智能照明控制系统电路图_咻享智能|智能家居照明控制系统的功能特点
  6. mysql的分区技术作用_理解MySQL数据库分区管理的技术细节
  7. 大学生html5设计大赛方案,2018年大学生三维设计大赛策划书范文
  8. 操作系统【八】文件管理
  9. 2022年,我只做 3 件事
  10. excel2010设置列宽为像素_职场新手都能学会的Excel技巧:快速调整行高、列宽
  11. 错误用的两个方法之间的区分
  12. docker 时区_centos7.X上部署docker并运行常用的应用
  13. springboot2.0处理自定义异常始终返回json
  14. 小白如何打造一个基础的留言板网站(一)
  15. 动词过去式和过去分词不规则变化
  16. 长图PDF如何分页打印?
  17. 这才是全规格样式车牌识别,秒杀各种“不服”
  18. UICC 之 USIM 详解全系列——UICC基础知识介绍
  19. 【kettle】文件导入数据库乱码
  20. 网络推广能否为企业带来效益以及精彩回复

热门文章

  1. 基于jsp和servlet的蛋糕店售卖网站商城系统javaweb点心铺源码mysql
  2. 新东方上海python培训班
  3. 国防科大计算所诚招各路英才,本硕博不限!
  4. 昆仑通态触摸屏的使用
  5. 【教师证学习笔记007】中学德育
  6. day24/MyIE.java
  7. python计算微积分_用Python学微积分---函数
  8. Unity物理系统中碰撞体、刚体、isKinematic、isTrigger的关系(附动画演示)
  9. 微信小程序开发之全屏显示
  10. 股票分仓资管跟单软件代码运行程序用那种语言写比较稳定