Android中如何使用TextToSpeech
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍Android中如何使用TextToSpeech,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!APP初稿如图:实现1.初始化语音。这是一个异步操作。初始化完成后
千家信息网最后更新 2025年11月07日Android中如何使用TextToSpeech
这篇文章主要介绍Android中如何使用TextToSpeech,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
APP初稿如图:
实现
1.初始化语音。这是一个异步操作。初始化完成后调用oninitListener(第二个参数)。
TextToSpeech mTts = new TextToSpeech(this, this);
2.实现TextToSpeech.OnInitListener
注意:语言可能不可用。
// 实现TextToSpeech.OnInitListener. public void onInit(int status) { if (status == TextToSpeech.SUCCESS) { //设置首选语言为中文,注意,语言可能是不可用的,结果将指示此 int result = mTts.setLanguage(Locale.CHINA); if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) { //语言数据丢失或不支持该语言。 Log.e(TAG, "语言数据丢失或不支持该语言"); } else { //检查文档中其他可能的结果代码。 // 例如,语言可能对区域设置可用,但对指定的国家和变体不可用 // TTS引擎已成功初始化。 // 允许用户按下按钮让应用程序再次发言。 mAgainButton.setEnabled(true); } } else { // 初始化失败 Log.e(TAG, "初始化失败"); } }3.写一个朗读方法,在需要的时候触发(如:点击事件)
TextToSpeech的speak方法有两个重载。
执行朗读的方法
speak(CharSequence text,int queueMode,Bundle params,String utteranceId);
第二个参数queueMode用于指定发音队列模式,两种模式选择。
(1)TextToSpeech.QUEUE_FLUSH:该模式下在有新任务时候会清除当前语音任务,执行新的语音任务
(2)TextToSpeech.QUEUE_ADD:该模式下会把新的语音任务放到语音任务之后,等前面的语音任务执行完了才会执行新的语音任务。
将朗读的的声音记录成音频文件
synthesizeToFile(CharSequence text,Bundle params,File file,String utteranceId);
private void sayHello() { String hello ="Hellow"; //TextToSpeech的speak方法有两个重载。 // 执行朗读的方法 //speak(CharSequence text,int queueMode,Bundle params,String utteranceId); // 将朗读的的声音记录成音频文件 //synthesizeToFile(CharSequence text,Bundle params,File file,String utteranceId); //第二个参数queueMode用于指定发音队列模式,两种模式选择 //(1)TextToSpeech.QUEUE_FLUSH:该模式下在有新任务时候会清除当前语音任务,执行新的语音任务 //(2)TextToSpeech.QUEUE_ADD:该模式下会把新的语音任务放到语音任务之后, //等前面的语音任务执行完了才会执行新的语音任务 mTts.speak(hello, TextToSpeech.QUEUE_FLUSH, null); }4.记得利用Activity的生命周期中将其关闭
@Override public void onDestroy() { // 生命周期中结束 if (mTts != null) { mTts.stop(); mTts.shutdown(); } super.onDestroy(); }源码
SpeechActivity.java
public class SpeechActivity extends Activity implements TextToSpeech.OnInitListener { private static final String TAG = "SpeechDemo"; private TextToSpeech mTts; private Button mButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.text_to_speech); //初始化语音。这是一个异步操作。初始化完成后调用oninitListener(第二个参数)。 mTts = new TextToSpeech(this, this); mButton = (Button) findViewById(R.id.again_button); //触发 mButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { sayHello(); } }); } @Override public void onDestroy() { // 生命周期中结束 if (mTts != null) { mTts.stop(); mTts.shutdown(); } super.onDestroy(); } // 实现TextToSpeech.OnInitListener. public void onInit(int status) { if (status == TextToSpeech.SUCCESS) { //设置首选语言为中文,注意,语言可能是不可用的,结果将指示此 int result = mTts.setLanguage(Locale.CHINA); if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) { //语言数据丢失或不支持该语言。 Log.e(TAG, "语言数据丢失或不支持该语言"); } else { //检查文档中其他可能的结果代码。 // 例如,语言可能对区域设置可用,但对指定的国家和变体不可用 // TTS引擎已成功初始化。 // 允许用户按下按钮让应用程序再次发言。 mAgainButton.setEnabled(true); } } else { // 初始化失败 Log.e(TAG, "初始化失败"); } } private void sayHello() { String hello ="计蒙不吃鱼"; //TextToSpeech的speak方法有两个重载。 // 执行朗读的方法 //speak(CharSequence text,int queueMode,Bundle params,String utteranceId); // 将朗读的的声音记录成音频文件 //synthesizeToFile(CharSequence text,Bundle params,File file,String utteranceId); //第二个参数queueMode用于指定发音队列模式,两种模式选择 //(1)TextToSpeech.QUEUE_FLUSH:该模式下在有新任务时候会清除当前语音任务,执行新的语音任务 //(2)TextToSpeech.QUEUE_ADD:该模式下会把新的语音任务放到语音任务之后, //等前面的语音任务执行完了才会执行新的语音任务 mTts.speak(hello, TextToSpeech.QUEUE_FLUSH, null); } }text_to_speech.xml
以上是"Android中如何使用TextToSpeech"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
任务
语音
语言
模式
方法
参数
数据
时候
结果
支持
两个
周期
声音
完了
文件
生命
队列
音频
选择
成功
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
脑软件开发创始人
网络技术标准第几代
国内网络安全厂商代理
网络技术应用-网络安全课件
宇视国标28181服务器无响应
国美金融连接不上服务器
网络安全中新赛克
华为服务器风扇怎么接线
edge 代理服务器
数据库 缓存 实现思路
亲昵小说软件开发
用友v16.0服务器安装
手机APP获取服务器域名失败
日本官方的专利数据库
电子政务网络安全建设推进会
河南信息化软件开发价钱
加强网络安全人才培养措施
中学生网络安全对联
信息软件开发市场价
如何入侵网站数据库
2021年日本海产品数据库
修改linux数据库编码
江西品质软件开发服务价钱
观察者模式 数据库
宇通网络技术有限公司
黑龙江特种网络技术服务技术
附加数据库824错误
亲昵小说软件开发
网络技术学习励志语录
群晖服务器加内存条的作用