事先声明:该文章参考以下几篇文章,如果大家想看,可直接点击进入:

https://github.com/SolveBugs/Utils/blob/master/SpeechUtils.java

http://blog.qiji.tech/archives/13040

http://blog.csdn.net/ichliebephone/article/details/5802044

https://developer.android.google.cn/reference/android/speech/tts/TextToSpeech.html

最近做的产品有一个需要边输入电话号码边进行语音播报的简单功能,一开始采用的是使用MediaPlayer事先播放,但效果与IOS相比,真的是差强人意,所以转换了种思路,在网上搜索解决方案,原来Android系统有自带的语音播报功能(TTS:TextToSpeech,以后需要多多了解Android的API了,汗颜)。

当然在写这篇文章的时候,对于整个tts包(android.speech.tts)中的所有类并不是全部了解熟悉,所有有需要的同学可以自己再去学习和了解。而使用TTS其实很简单,大概就分成三步(当然是我很浅显的理解):

1、初始化TTS对象

TextToSpeech mTts = new TextToSpeech(context, mInitListener);

context就不用说了;mInitListener指的是TextToSpeech.OnInitListener,是构造TextToSpeech对象的第二个参数,所以需要实现该接口,具体实现代码如下:

private final TextToSpeech.OnInitListener mInitListener = new TextToSpeech.OnInitListener() {

@Override

public void onInit(int status) {

if (status == TextToSpeech.SUCCESS) {

int result = mTts.setLanguage(Locale.CHINESE);

mTts.setPitch(1.0f);

mTts.setSpeechRate(1.0f);

if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {

LogUtils.e("Language is not available.");

}

} else {

LogUtils.e("Could not initialize TextToSpeech.");

}

}

};

setPitch()方法用来控制音调;

setSpeechRate()用来控制语速;

当然也可参考第三个链接,会更详细;

2、调用speak()

mTts.speak(s, TextToSpeech.QUEUE_ADD, null);但该方法已在API21废弃了,s表示要播报的字符串

3、销毁TextToSpeech对象,在无用时销毁该对像

public void closeVoice() {

if (null != mTts) {

mTts.stop();

mTts.shutdown();

}

}

注:TTS读语音数字的时候需要用空格隔开,如150需要写成1 5 0,读“一五零”,否则TTS会读成“一百五十”

源码地址:https://github.com/LomoLin/Lomo/blob/master/app/src/main/java/com/lomo/utils/VoiceUtils.java 以上只是做一个简单的记录,如有什么不正确的地方,请指教,谢谢!

android电话语音播放,使用Android自带的TTS实现语音播报(电话号码)功能相关推荐

  1. tts android,Android系统自带的TTS实现语音播报

    Android系统自带的TTS实现语音播报(类似支付宝到账xx元)(这里写自定义目录标题) 以按钮的点击事件来实现: public class MainActivity extends Activit ...

  2. 视频教程-FFmpeg打造Android万能音频播放器-Android

    FFmpeg打造Android万能音频播放器 从事Android移动端开发多年.主导开发过直播.电商.聊天等各种类型APP和游戏SDK:熟悉Android音视频开发.底层NDK开发等:有开源项目:ht ...

  3. android智能语音播放器,android IM模块-语音-播放篇1

    MediaPlayer MediaPlayer是我们经常用的一个音频播放类 创建的方式有很多种,可以直接new一个,也可以直接调用MediaPlayer.creat(xxx) 常用API有如下 voi ...

  4. android 语音播放工具,Android简易的仿微信聊天的语音播放控件

    说到Android音频播放,可谓108式,方案众多,这里有一篇总结Android几种播放音频的方式的文章,传送门.本文旨在熟悉MediaPlayer的使用,遂此控件封装采用MediaPlayer实现. ...

  5. android x5获取播放地址,Android 使用WebView 实现播放爱奇艺视频,可全屏(使用的腾讯的X5内核) (一)...

    Android 使用WebView 实现播放爱奇艺视频,可全屏(使用的腾讯的X5内核) (一) 发布时间:2018-06-27 18:30, 浏览次数:1438 , 标签: Android WebVi ...

  6. android后台自播放音乐,Android实现后台播放音乐(Service方式)

    Android实现后台播放音乐(Service方式) 实现: 在res文件夹下添加raw文件夹,添加mp3/4格式的音乐文件 注意命名规则只能是a-z,0-9,和下划线_ 不能大写字母和- Andro ...

  7. android无缝切换播放器,Android使用MediaPlayer和TextureView实现视频无缝切换

    需求描述 比如广告播放,每个视频15秒,视频之间切换的时候,性能不太好的机器可能会黑屏一段时间,体验不太好,接下来我们就是要解决这个黑屏问题. 解决方案 使用两个surfaceView方式,经过测试不 ...

  8. android仿音乐播放器,Android仿音乐播放器功能

    本文实例为大家分享了Android仿音乐播放器功能的具体代码,供大家参考,具体内容如下 读取本地音乐文件 源代码: import android.media.MediaPlayer; import a ...

  9. android开发音乐播放器,Android开发简易音乐播放器

    这里介绍一个简易的音乐播放器,供大家参考,具体内容如下 效果图如下: 但是,由于这是一个简易版的音乐播放器,所播放的音乐只有一首,且被写死,但,操作却十分简单,方便理解! 这是代码的主要设计: 音乐主 ...

最新文章

  1. Android 第三方图表类 MPChart 的使用
  2. windows环境下运行.sh文件
  3. Python生成列表的所有子集
  4. UWP x:bind
  5. vuepc端实现数据加载_多模态注意力机制+多模态数据,完全实现端到端课堂活动检测|ICASSP 2020...
  6. 1618D. Array and Operations
  7. vc 通过句柄修改窗口大小_漫画:对象是如何被找到的?句柄 OR 直接指针?
  8. jQuery Zoom 图片聚焦或者点击放大A plugin to enlarge images on touch, click, or mouseover
  9. 【GNN】WL-test:GNN 的性能上界
  10. 结构型模式分类与简介
  11. Ruby on Rails 入门学习
  12. 【计算机图形学】OpenGL递归实现光线追踪
  13. Office 365组命名策略 - 补充
  14. 黑马程序员——JAVA集合
  15. 1949. 坚定的友谊
  16. 英文文献 ---英语词汇整理
  17. 天池AI大赛 智能制造预测赛题
  18. PAT 1166 Summit
  19. python做什么最赚钱农村_Python数据可视化:啥是佩奇
  20. 知到山东理工c语言答案,山东理工大学C语言实验.doc

热门文章

  1. 《销售管理必读12篇》购买方法
  2. 互联网API接口的简单demo实现(详细)
  3. mysql中如何设置主键一直从0开始_怎么让mysql的id从0开始
  4. OC 获取手机运营商信息
  5. VDP一些命令行命令
  6. bilibili 学习
  7. 爬虫经典案例 | 爬取豆瓣top250
  8. base64转图片及显示
  9. Python入门-基础篇笔记02
  10. templete模板each循环和if用法