文本轉(zhuǎn)語(yǔ)音TTS開(kāi)發(fā)Android11適配方案
在調(diào)用android TextToSpeech接口能力時(shí),遇到了android版本兼容問(wèn)題,在android11系統(tǒng)下運(yùn)行應(yīng)用發(fā)現(xiàn)TextToSpeech實(shí)例初始化出錯(cuò),而在以往的android版本中并未出現(xiàn)此問(wèn)題~
本文給大家分享下TextToSpeech接口開(kāi)發(fā)在android11系統(tǒng)下的適配方案,來(lái)解決TextToSpeech初始化出錯(cuò)的問(wèn)題~
參考google官方開(kāi)發(fā)文檔:https://developer.android.google.cn/reference/android/speech/tts/TextToSpeech?hl=zh_CN
錯(cuò)誤重現(xiàn)
如果是在android模擬器中測(cè)試TTS,需要先安裝TTS引擎到模擬器中
1.編寫(xiě)TextToSpeech實(shí)例初始化代碼

2.啟動(dòng)裝載android11系統(tǒng)的模擬器來(lái)運(yùn)行app,并觀察控制臺(tái)日志輸出

3.根據(jù)日志打印,觀察到TextToSpeech初始化失敗了,返回了ERROR的狀態(tài)碼

解決方法
查詢google官方開(kāi)發(fā)文檔后,發(fā)現(xiàn)在android11系統(tǒng)下對(duì)于使用到TTS能力的應(yīng)用,需要修改應(yīng)用中的AndroidManifest.xml清單聲明

根據(jù)文檔指引,在AndroidManifest.xml中添加如下的xml代碼聲明

運(yùn)行效果
增加以上配置聲明后,再次在android11系統(tǒng)的模擬器中運(yùn)行app,觀察日志輸出

可以看到,TextToSpeech實(shí)例化已經(jīng)成功了,接下來(lái)就可以基于TextToSpeech的實(shí)例實(shí)現(xiàn)TTS文本轉(zhuǎn)語(yǔ)音能力調(diào)用了

完整測(cè)試工程:https://github.com/netbuffer/android-technology-test/tree/master/ttstest