Android的自动朗读支持主要是通过TextToSpeech来完成,该类提供了如下一个构造器
TextToSpeech(Context context,TextToSpeech.OnInitListener listener)
当创建TextToSpeech对象时,必须先提供一个OnInitListener监听器——该监听器负责监听TextToSpeech的初始化结果。

TextToSpeech最常用的两个方法如下:
1、speak(String text,int queueMode,HashMap<String,String> params)
2、synthesizeToFile(String text,HashMap<String,String> params,String filename)
上面两个方法都用于把text文字内容转换为音频,区别只是speak方法是播放转换的音频,而synthesizeToFile是把转换得到的音频保存成声音文件。
上面两个方法中的params都用于指定声音转换时的参数,speak()方法中的queueMode参数指定TTS的发音队列模式,该参数支持如下两个常量。
1、TextToSpeech.QUEUE_FLUSH:如果指定该模式,当TTS调用speak方法时,它会中断当前实例正在运行的任务(也可以理解为清除当前语音任务,转而执行新的语音任务)
2、TextToSpeech.QUEUE_ADD:如果指定为该模式,当TTS调用speak方法时,会把新的发音任务添加到当前发音任务列队之后——也就是等任务队列中的发音任务执行完成后在来执行speak()方法指定的发音任务。

当程序用完了TextToSpeech对象之后,可以在Activity的OnDestroy()方法中调用它的shutdown()来关闭TextToSpeech,释放它所占用的资源。

使用TextToSpeech的步骤如下:
1、创建TextToSpeech对象,创建时传入OnInitListener监听器监听创建是否成功。
2、设置TextToSpeech所使用语言、国家选项,通过返回值判断TTS是否支持该语言、国家选项。
3、调用speak()或synthesizeToFile方法。
4、关闭TTS,回收资源。

更多相关文章

  1. android 获取路径目录方法以及判断目录是否存在,创建目录
  2. eclipse添加android插件错误处理方法
  3. ReactNative 在用react-navigation组件时,没有 navigator.getCurr
  4. Android启动模拟器出现:Failed to allocate memory: 8的解决方法
  5. Android(安卓)使用ORMLite 操作数据库
  6. Java(Android)线程池
  7. Android计时器和倒计时
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. 接口之命令模式
  2. 如何在2D阵列中找到局部最小值?
  3. Java中累计时间的计算(以小时为最终结果)
  4. Java读取Unicode文件(UTF-8等)时碰到的BOM
  5. java类与对象,用程序解释
  6. idea配置完tomcat启动键为什么还是灰的
  7. java数组的拷贝四种方法:for、clone、Syst
  8. “java.exe”已退出,代码为 1。
  9. 经典算法问题的java实现
  10. java高并发测试实例(精确到几百纳秒)