在调用android TextToSpeech接口能力时,遇到了android版本兼容问题,在android11系统下运行应用发现TextToSpeech实例初始化出错,而在以往的android版本中并未出现此问题~
本文给大家分享下TextToSpeech接口开发在android11系统下的适配方案,来解决TextToSpeech初始化出错的问题~
参考google官方开发文档:https://developer.android.google.cn/reference/android/speech/tts/TextToSpeech?hl=zh_CN
错误重现
如果是在android模拟器中测试TTS,需要先安装TTS引擎到模拟器中
1.编写TextToSpeech实例初始化代码
2.启动装载android11系统的模拟器来运行app,并观察控制台日志输出
3.根据日志打印,观察到TextToSpeech初始化失败了,返回了ERROR的状态码
解决方法
查询google官方开发文档后,发现在android11系统下对于使用到TTS能力的应用,需要修改应用中的AndroidManifest.xml清单声明
根据文档指引,在AndroidManifest.xml中添加如下的xml代码声明
运行效果
增加以上配置声明后,再次在android11系统的模拟器中运行app,观察日志输出
可以看到,TextToSpeech实例化已经成功了,接下来就可以基于TextToSpeech的实例实现TTS文本转语音能力调用了
完整测试工程:https://github.com/netbuffer/android-technology-test/tree/master/ttstest
网友评论