Android 系统原生TTS使用
1.相关权限策略
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
2.TTS播放对象创建
import android.content.Context;
import android.speech.tts.TextToSpeech;
import android.speech.tts.UtteranceProgressListener;
import android.widget.Toast;import java.util.Locale;public class SystemTTS implements TextToSpeech.OnUtteranceCompletedListener{private Context mContext;private static SystemTTS mSystemTTS;private TextToSpeech mTextToSpeech;public static SystemTTS getInstance(Context context) {if (mSystemTTS == null) {synchronized (SystemTTS.class) {if (mSystemTTS == null) {mSystemTTS = new SystemTTS(context);}}}return mSystemTTS;}private SystemTTS(Context context) {mContext = context.getApplicationContext();mTextToSpeech = new TextToSpeech(mContext, new TextToSpeech.OnInitListener() {@Overridepublic void onInit(int status) {if (status == TextToSpeech.SUCCESS) {int result = mTextToSpeech.setLanguage(Locale.US);if (result != TextToSpeech.LANG_COUNTRY_AVAILABLE && result != TextToSpeech.LANG_AVAILABLE) {Toast.makeText(mContext, "TTS不支持", Toast.LENGTH_SHORT).show();}else{mTextToSpeech.setPitch(1.0f);// 设置音调,值越大声音越尖(女生),值越小则变成男声,1.0是常规mTextToSpeech.setSpeechRate(1.0f);mTextToSpeech.setOnUtteranceProgressListener(new TTSUtteranceListener());mTextToSpeech.setOnUtteranceCompletedListener(SystemTTS.this);//已经过时}}}});}//此方法已经过时@Overridepublic void onUtteranceCompleted(String utteranceId) {}private class TTSUtteranceListener extends UtteranceProgressListener {@Overridepublic void onStart(String utteranceId) {}@Overridepublic void onDone(String utteranceId) {if(mISpeechComplete != null){mISpeechComplete.speechComplete();}}@Overridepublic void onError(String utteranceId) {if(mISpeechComplete != null){mISpeechComplete.speechError();}}}public void playText(String playText) {if (mTextToSpeech != null) {//依次播放MSG,不会打断当前播放内容mTextToSpeech.speak(playText,TextToSpeech.QUEUE_ADD,null,"UniqueID");//注意设置ID//依次播放MSG,如果有新的播放内容时,则取消上一次正在播放的内容,播放现在内容//mTextToSpeech.speak(playText,TextToSpeech.QUEUE_FLUSH,null,"UniqueID");}}public void stopSpeak() {if (mTextToSpeech != null) {mTextToSpeech.stop();}}private ISpeechComplete mISpeechComplete;public void setSpeechComplete(ISpeechComplete speechComplete){mISpeechComplete = speechComplete;}public interface ISpeechComplete{void speechComplete();void speechError();}
}
3.Activity全局使用
SystemTTS mSystemTTS = SystemTTS.getInstance(this);mSystemTTS.playText("");
Android 系统原生TTS使用相关推荐
- 利用 Android 系统原生 API 实现分享功能
对于 App 的分享功能,基本上是一个刚需,本文主要介绍运用系统原生分享功能时候需要注意的一些问题.对于某些特定平台的一些高级分享特性,比如微信或者微博之类的分享来源标注,需要在其开放平台注册应用再接 ...
- Android系统原生应用解析之桌面闹钟及相关原理应用之时钟任务的应用(一)
前段时间我一个朋友在面试回来问我:那个公司要5天之内完成一个项目,功能包括每天早上6点开始执行定时任务,大批量图片上传,大批量数据库同步.我心想,后两个功能还好说,可就是每天早上6点开始执行的这种定时 ...
- Android系统原生应用解析之桌面闹钟及相关原理应用之时钟任务的应用(二)
这篇文章主要针对http://android.xsoftlab.net/training/scheduling/alarms.html#tradeoffs中的Scheduling Repeating ...
- android系统tts TextToSpeech源码原理解析及定制tts引擎
TextToSpeech 即文字转语音服务,是Android系统提供的原生接口服务,原生的tts引擎应用通过检测系统语言,用户可以下载对应语言的资源文件,达到播报指定语音的文字的能力.但是一切都是在g ...
- Android系统替换默认输入法
需求描述 使用第三方输入法APK替换Android系统原生输入法 需求分析 默认输入法:packages/inputmethods/LatinIME 替换默认输入法方法 1.内置apk到系统:Andr ...
- Android原生TTS(TextToSpeech)无效问题
Android原生TTS(TextToSpeech)无效问题 在使用安卓原生语音文字转语音时发现系统自带的语音合成引擎不支持中文语音,查找资料有一下几款语音引擎 com.svox.pico 系统自带不 ...
- tts android,Android系统自带的TTS实现语音播报
Android系统自带的TTS实现语音播报(类似支付宝到账xx元)(这里写自定义目录标题) 以按钮的点击事件来实现: public class MainActivity extends Activit ...
- 自己动手刷原生android系统
先说几句题外话. 我本人而言,用过好几种android机,有nexus系列的,也有国内厂商的产品.刷机呢,以前,1-2年之前,基本上用这大师,那助手什么的刷,一来图个方便,二来,似乎那时候从刷机软件刷 ...
- android系统测试报告,小米A2 Lite 快速测试报告:原生 Android 的红米6X
5.84吋刘海屏,19:9比例,2280×1080 解析度,500nit 亮度,1500 :1的对比度和 84%NTSC的色域覆盖率. 前置镜头为 500万像素,支援 AI 人像模式. 下巴就有点宽阔 ...
最新文章
- 34 JavaScript中的构造函数和原型
- (转)青春有限,走红有年
- 虚拟机上的ubuntu安装vmware tools
- 【数据竞赛】“达观杯”文本智能处理挑战赛5
- How many levels are there at the in the digital transformation?
- 找出一批正整数中的最大偶数_正整数的性质 B6,C1
- 计算图片的宽和高 动态设置图片的位置
- 我的win7黑屏解决方案
- python用for循环求10的因数_python for循环练习(初级)
- 【计算机网络】关键词汇翻译整合
- grDevices | R语言中的配色方法汇总(Ⅱ-1)
- datagrid sortname如何定义多列_如何实现一个小说分页的功能
- cleanlab(解决图像标记错误)
- (转)PMP的项目管理5大组
- 海康威视ivms-4200图文说明
- 数据库表及字段命名规范
- kali网络问题解决办法
- Docker容器之harbor私有仓库部署与管理
- 视频画面裁剪怎么弄?分享几个实用技巧
- [前端框架]-VUE(上篇)