android - Android 9.0 中的 TextToSpeech 有错误或不支持?
问题描述
我有一个使用 TextToSpeech 来提供某些功能的项目。一切都很好,直到我尝试在 Android 9.0 上运行。它报告了一个错误:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.speech.tts.TextToSpeech.setLanguage(java.util.Locale)' on a null object reference
这些是我写的行:
private void initializeTextToSpeech() {
mytts= new TextToSpeech(HomeActivity.this, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if (status ==0){
Toast.makeText(HomeActivity.this,
"There is no TTS engine on your device", Toast.LENGTH_LONG).show();
finish();
}else {
int result = mytts.setLanguage(Locale.US);
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.e("TTS", "This Language is not supported");
} else {
Log.e("TTS", "success !");
}
}
}
});
}
在我将条件更改为status == 0
之后status! = TextToSpeech.SUCCESS
,它宣布:“您的设备上没有 TTS 引擎”。好像不支持 9.0 版 TTS?
解决方案
推荐阅读
- python - Django - 没有模型与给定的查询匹配
- python - 将Mysql中的图像直接显示到kivy窗口
- python - 与其他服务器混合的全局变量
- reactjs - Ant Design Upload:只预览一张图片?
- javascript - 使用 Ajax 更新变量
- ios - 将 SQLite 3 数据库连接到 Swift
- r - 在 dplyr 1.0.0 的单个 mutate() 函数中组合两个列转换
- node.js - 如何访问文件并从使用 nexe 制作的 nodejs 可执行文件写入文件?
- python - 在 Python 中为二维数组添加填充
- javascript - 在数组中的对象中查找子字符串