android 朗读推送内容,Android技术分享-文字转语音并朗读
最近在做一个项目,其中有一个功能是需要将文本转换成语音并播放出来。下面我将我的做法分享一下。
非常令人开心的是,Android系统目前已经集成了TTS,提供了相关的库供我们进行调用,不必到处去搜寻第三方库,直接导入android.speech.tts.TextToSpeech即可。
//导入TTS的包
import android.speech.tts.TextToSpeech;
//定义一个tts对象
private TextToSpeech tts;
其次,要想实例化这个对象需要两个参数,一个是Context对象,另一个是TextToSpeech类对应的监听器对象:OnLnitListener对象。一般Context对象传入当前的Activity,OnLnitListener可以自己写类继承,并实现其方法。
//导入监听包
import android.speech.tts.TextToSpeech.OnInitListener;
//初始化tts监听对象
tts = new TextToSpeech(this, OnInitListener);
OnLnitListener接口中只要是onInit方法,其功能是对tts对象进行初始化,设置一下语言,判断文字是否转换成功以及当前系统是否支持该语言。
@Override
public void onInit(int status){
// 判断是否转化成功
if (status == TextToSpeech.SUCCESS){
//默认设定语言为中文,原生的android貌似不支持中文。
int result = tts.setLanguage(Locale.CHINESE);
if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED){
Toast.makeText(MainActivity.this, R.string.notAvailable, Toast.LENGTH_SHORT).show();
}else{
//不支持中文就将语言设置为英文
tts.setLanguage(Locale.US);
}
}
}
最后,只要在合适的时候调用tts转文字到语音的方法即可.
tts.speak("需要转化的文字", TextToSpeech.QUEUE_FLUSH, null);
下面是写的一个demo:
MainActivity.java:
/**
* Author: sandy
* QQ技术交流群:439261058
* 微信公众号:代码之间(codestravel)
**/
package com.example.ct_text2speechdemo;
import java.util.Locale;
import android.os.Bundle;
import android.app.Activity;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity implements OnInitListener{
//定义控件
private Button speechButton;
private TextView speechText;
private TextToSpeech tts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化TTS
tts = new TextToSpeech(this, this);
//获取控件
speechText = (TextView)findViewById(R.id.speechTextView);
speechButton = (Button)findViewById(R.id.speechButton);
//为button添加监听
speechButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
// TODO Auto-generated method stub
tts.speak(speechText.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
}
});
}
@Override
public void onInit(int status){
// 判断是否转化成功
if (status == TextToSpeech.SUCCESS){
//默认设定语言为中文,原生的android貌似不支持中文。
int result = tts.setLanguage(Locale.CHINESE);
if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED){
Toast.makeText(MainActivity.this, R.string.notAvailable, Toast.LENGTH_SHORT).show();
}else{
//不支持中文就将语言设置为英文
tts.setLanguage(Locale.US);
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Demo示例
完整代码参见github
欢迎加入qq技术交流群:439261058
微信公众号:代码之间(codestravel)
android 朗读推送内容,Android技术分享-文字转语音并朗读相关推荐
- mysql朗读,Android技术分享-文字转语音并朗读
Android技术分享-文字转语音并朗读 最近在做一个项目,其中有一个功能是需要将文本转换成语音并播放出来.下面我将我的做法分享一下. 非常令人开心的是,Android系统目前已经集成了TTS,提供了 ...
- oracle订阅推送,ERP一部推送 | Oracle优化技术分享
原标题:ERP一部推送 | Oracle优化技术分享 看到图片中酷酷的小哥哥们了吗?他们是来自中ERP一部的许斌哲,有颜有才的他今天为我们带来的技术分享是关于 Oracle优化方面的,欢迎感兴趣的小伙 ...
- android 极光推送测试,Android 3分钟带你集成极光推送
话不多说 首先申请极光的账号,(官方地址:https://www.jiguang.cn) 1561710140829.png 登录完成之后,先看到这个地方 ,我个人比较喜欢用旧版本,这里点击旧版 15 ...
- android极光推送声音,Android 极光推送JPush---自定义提示音
public classMyReceiver extends BroadcastReceiver {private static final String TAG = MyReceiver.class ...
- android 极光推送混淆,android 混淆文件的编写(proguard-rules.pro)
压缩级别 -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreveri ...
- android极光推送声音,android 极光推送 声音与振动 的关闭和开启
前言:最近刚好在写一些推送方面的东西,又是新手,不断在网上找资料,很少,不过还是找到了一些,反正百度我是再也不想百度了,谷歌一下子就能找到想要的. 废话不多说. 1.主要方法就是如下一个函数 priv ...
- android极光推送 小米,android 接极光推送厂商通道,华为 小米 VIVO OPPO
我首先接入极光推送,然后才来接厂商通道, 需要先接极光推送的看我另外一边帖子, 1 在根目录的build.gradle buildscript{ repositories{ google() jc ...
- 【android极光推送】—从客户端到后台,一文通吃
前记 推送原理浅析 平台说明 概念解释 推送的三种实现方式 客户端直接向推送服务方发送Http请求 项目服务器通过Http转发推送请求至推送服务方 项目服务端使用SDK进行功能集成 关于推送的种类概述 ...
- Android消息推送:手把手教你集成小米推送
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/category.j ...
最新文章
- 曾大战LeCun的谷歌女性科学家,刚刚被Jeff Dean开除了!
- 2018-2019-2 20165330《网络对抗技术》Exp9 Web安全基础
- Codeforces 603A Alternative Thinking
- IOS-关闭(退)键盘事件--转
- 关于Java里如何跳出一个多重循环
- 解决远程连接mysql很慢的方法
- 交换机工作原理_交换机你了解它吗?它工作原理是这样的
- 简述 JPA 与 Spring Data JPA 与 Hibernate
- python三本经典书籍-Python入门经典书籍有哪些?有这三本就够了
- axure下载及汉化
- NOIP2016DAY1题解
- 机房收费系统——配置DSN文件
- Java Files.walk示例
- 微信公众号图文 点击显示图片效果
- 交叉编译lrzsz(用于串口传输文件)
- 计算机底层:进程与线程。
- UVa 10813 - Traditional BINGO
- 十位数连加 c语言,用C语言编写一个简易计算器可实现加减乘除,连加连减,连乖连除....
- ios服务器需要开启ipv6的支持,关于ios苹果APP审核 支持IPv6的问题解答
- 武林秘籍之Spring AOP 切面编程的简单应用