【发布时间】:2019-12-19 06:56:50
【问题描述】:
我想检查是否在用户设备上为 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();
}
}
但这没有用。我认为这段代码不会检查是否下载了语言,有没有办法检查?
【问题讨论】:
-
不,不是。他们检查是否支持一种语言或获取所有可用的语言。但是我想要检查是否在用户的设备上下载了一种语言(例如中文)......如果有什么我理解错了,请告诉我!
-
仅供参考,最新版本的 Google TTS 引擎会自动处理所有这些 - 如果尚未下载该语言,它会在您调用 speak() 时立即下载(只要语言“可用”/受支持)。我在这里有一个相关的答案:stackoverflow.com/questions/53910128/…
-
是的!但我想告诉用户如果没有下载语言,请打开他们的 wifi,以便他们知道这不是应用程序的问题。
-
对...所以我认为最好的方法是如果 speak() 调用导致随后的 onError() 调用并带有类似“说话错误”的警报,则将用户发送到 TTS 设置[特定语言]。”这样他们就会明白他们需要 wifi 才能在你不说的情况下下载它。
标签: android text-to-speech google-text-to-speech