android - 如何检查是否为 TTS 下载了语言
问题描述
我想检查是否在用户设备上为 Android TextToSpeech下载了特定语言。
我试图这样做:
private void checkVoiceData() {
if (ttsLang == TextToSpeech.LANG_MISSING_DATA
|| ttsLang == TextToSpeech.LANG_NOT_SUPPORTED
|| !(ttsLang == TextToSpeech.LANG_AVAILABLE)) {
Log.e("TTS", "The Language is not supported!");
Toast.makeText(PreviewActivity.this, "Open WI-Fi to Download the Language..", Toast.LENGTH_LONG).show();
}
}
但这没有用。我认为这段代码不会检查是否下载了语言,有没有办法检查?
解决方案
所以,我终于找到了一种方法来检查是否安装了语言。这是代码:
private boolean isLanguageInstalled(){
Voice voice = textToSpeech.getVoice();
if(voice != null){
Set<String> features = voice.getFeatures();
//Simplified if statement that returns true if the condition is met
return features != null && !features.contains(TextToSpeech.Engine.KEY_FEATURE_NOT_INSTALLED);
}
return false;
}
推荐阅读
- vuejs2 - 将计算数据作为道具传递给子组件的模式(Promise 问题)
- mysql - 错误 pool.db:错误:ER_CON_COUNT_ERROR:使用 MySql 的连接太多
- javascript - can't get random # 通过 switch 语句
- java - 如何跨返回整数的不同类访问共享bean实例
- java - 使用 Java 进行自适应卡片渲染和创作
- java - 错误:运行 Spring Boot 应用程序时,由于缺少 EmbeddedServletContainerFactory bean,无法启动 EmbeddedWebApplicationContext
- python - 如何在 tkinter 中修复 scrolledtext 小部件的滚动条的位置?
- video - 即使在转码后,FFMPEG音频/视频在剪切和连接后也不同步
- java - 将功能移动到另一个活动后,无法从 Firestore 中检索文档
- excel - 带有 NamedRange 的 VLookup 函数被引用为字符串