老年人刷新闻两宝:字体放大跟语音朗读,今天我们往项目中加入语音朗读的功能。
第一步 声明并实例化TextToSpeech
lateinit var tts: TextToSpeech
tts = TextToSpeech(this@HeadLineDetailActivity, this)
第二步 设置监听
class HeadLineDetailActivity :OnInitListener{}
override fun onInit(status: Int) {
// 判断是否转化成功
if (status === TextToSpeech.SUCCESS) {
//默认设定语言为中文,原生的android貌似不支持中文。
val result = tts.setLanguage(Locale.CHINESE)
if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
ToastUtils.normal("转换中文失败,语言包丢失或语音不支持")
} else {
//不支持中文就将语言设置为英文
tts.language = Locale.US
}
}
}
第三步 开始阅读
tts.speak(tv_content.text.toString(), TextToSpeech.QUEUE_FLUSH, null)
此处选取的文本框的内容进行朗读
注意事项
override fun onDestroy() {
super.onDestroy()
tts.shutdown()
}
关闭当前Activity时要释放内存
此功能是直接调用的Android系统的功能,无需集成其他插件,在设置中可直接搜索tts来进行语音朗读的配置