最近在做一个项目,其中有一个功能是需要将文本转换成语音并播放出来。下面我将我的做法分享一下。

非常令人开心的是,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技术分享-文字转语音并朗读相关推荐

  1. mysql朗读,Android技术分享-文字转语音并朗读

    Android技术分享-文字转语音并朗读 最近在做一个项目,其中有一个功能是需要将文本转换成语音并播放出来.下面我将我的做法分享一下. 非常令人开心的是,Android系统目前已经集成了TTS,提供了 ...

  2. oracle订阅推送,ERP一部推送 | Oracle优化技术分享

    原标题:ERP一部推送 | Oracle优化技术分享 看到图片中酷酷的小哥哥们了吗?他们是来自中ERP一部的许斌哲,有颜有才的他今天为我们带来的技术分享是关于 Oracle优化方面的,欢迎感兴趣的小伙 ...

  3. android 极光推送测试,Android 3分钟带你集成极光推送

    话不多说 首先申请极光的账号,(官方地址:https://www.jiguang.cn) 1561710140829.png 登录完成之后,先看到这个地方 ,我个人比较喜欢用旧版本,这里点击旧版 15 ...

  4. android极光推送声音,Android 极光推送JPush---自定义提示音

    public classMyReceiver extends BroadcastReceiver {private static final String TAG = MyReceiver.class ...

  5. android 极光推送混淆,android 混淆文件的编写(proguard-rules.pro)

    压缩级别 -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreveri ...

  6. android极光推送声音,android 极光推送 声音与振动 的关闭和开启

    前言:最近刚好在写一些推送方面的东西,又是新手,不断在网上找资料,很少,不过还是找到了一些,反正百度我是再也不想百度了,谷歌一下子就能找到想要的. 废话不多说. 1.主要方法就是如下一个函数 priv ...

  7. android极光推送 小米,android 接极光推送厂商通道,华为 小米 VIVO OPPO

    我首先接入极光推送,然后才来接厂商通道, 需要先接极光推送的看我另外一边帖子, 1   在根目录的build.gradle buildscript{ repositories{ google() jc ...

  8. 【android极光推送】—从客户端到后台,一文通吃

    前记 推送原理浅析 平台说明 概念解释 推送的三种实现方式 客户端直接向推送服务方发送Http请求 项目服务器通过Http转发推送请求至推送服务方 项目服务端使用SDK进行功能集成 关于推送的种类概述 ...

  9. Android消息推送:手把手教你集成小米推送

    <script type="text/javascript" src="http://static.blog.csdn.net/scripts/category.j ...

最新文章

  1. 曾大战LeCun的谷歌女性科学家,刚刚被Jeff Dean开除了!
  2. 2018-2019-2 20165330《网络对抗技术》Exp9 Web安全基础
  3. Codeforces 603A Alternative Thinking
  4. IOS-关闭(退)键盘事件--转
  5. 关于Java里如何跳出一个多重循环
  6. 解决远程连接mysql很慢的方法
  7. 交换机工作原理_交换机你了解它吗?它工作原理是这样的
  8. 简述 JPA 与 Spring Data JPA 与 Hibernate
  9. python三本经典书籍-Python入门经典书籍有哪些?有这三本就够了
  10. axure下载及汉化
  11. NOIP2016DAY1题解
  12. 机房收费系统——配置DSN文件
  13. Java Files.walk示例
  14. 微信公众号图文 点击显示图片效果
  15. 交叉编译lrzsz(用于串口传输文件)
  16. 计算机底层:进程与线程。
  17. UVa 10813 - Traditional BINGO
  18. 十位数连加 c语言,用C语言编写一个简易计算器可实现加减乘除,连加连减,连乖连除....
  19. ios服务器需要开启ipv6的支持,关于ios苹果APP审核 支持IPv6的问题解答
  20. 武林秘籍之Spring AOP 切面编程的简单应用

热门文章

  1. 软件测试常见的经典面试题
  2. 使用SCCM管理Office ProPlus(三)--部署Office ProPlus(上)
  3. 台达ES系列PLC与施耐德ATV 71变频器通讯程序
  4. 2021年P气瓶充装最新解析及P气瓶充装模拟试题
  5. storm完全分布式部署
  6. chrome安装jsonview插件
  7. PADS VX2.8 router锁定保护的设置方法
  8. 12306网购火车票
  9. 英语sidewalk和pavement和footpath和footway区别?
  10. The Forty-Year Programmer