- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
official Android 中文本转语音的介绍说,“在创建 Activity 时,第一步是检查是否存在具有相应 Intent 的 TTS 资源:”
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
但是@gregm 在this thread否则建议:
Also, don't use the ACTION_CHECK_TTS_DATA Intent, that's awkward to use.
Instead, do the following:
- Create TextToSpeech
- OnInit, check isLanguageAvailable() if it is, your app is all set. if not, send the ACTION_INSTALL_TTS_DATA
如果我理解正确,@gregm 所做/建议的是延迟 TextToSpeech.LANG_MISSING_DATA
检查从 onActivityResult()
到 onInit()
.
为什么这比 formal 更好方法?
为什么 ACTION_CHECK_TTS_DATA 如此“难用”?
最佳答案
我是@gregm。
ACTION_CHECK_TTS_DATA
需要更复杂的执行和更多代码,但与 TextToSpeech.isLanguageAvailable()
做同样的事情让我解释一下:
1) 当您使用 ACTION_INSTALL_TTS_DATA
时,您需要两个异步进程。首先,启动一个 Intent
并接收结果。其次,等待 TextToSpeech
调用 onInit()
当您的应用正在等待时,更多情况可能会出错。
2) 您要做的只是执行一个 if 语句,如果需要,您需要相同的代码来处理安装语言数据,所以为什么要增加额外的复杂性?
它归结为这样做:
是否需要一行代码:
if (TextToSpeech.isLanguageAvailable())
{
(same tts init code here)
}
或>1 行代码,如:
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
public void onActivityResult(...)
{
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS)
(same tts init code here)
}
在我看来,我宁愿只使用 if 语句,而不是使用 Intent
循环。我相信官方 Android 文档需要更改以推荐这种方法。
如果您仍然不相信我们正在讨论的两种方法做同样的事情,请查看我的替代实现 here和 here .此外,如果您不关心所有这些东西,只想让您的应用说话,只需扩展此 Activity并完成。
关于android - 为什么 ACTION_CHECK_TTS_DATA Intent "awkward to use"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11550746/
official Android 中文本转语音的介绍说,“在创建 Activity 时,第一步是检查是否存在具有相应 Intent 的 TTS 资源:” Intent checkIntent = ne
我目前有稀疏矩阵数据的数据文件,如下所示 i j value 0 0 1 5 1 7 1 101 9 ... 并且能够通过以下理解将该数据读取为(i,j,值)元组列表。 with open("spar
我有一个大文件(200K - 300K 行文本)。它几乎但不完全是 CSV 文件。 列标题在第二行,有一行虚拟文本 在此之前。 有些行与实际数据行交织在一起。他们有逗号,但大多数列都是空白的。它们与我
我正在使用以下笨拙的 slider 来显示文章 ( link) 的图像。我已经修改了 CSS 以更改设计,当我将它用作 HTML 页面时,同样的效果很好。 但是当我尝试将它与 asp.net web
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 7 年前。 Improve
我是一名优秀的程序员,十分优秀!