我的 TTS 引擎有一个奇怪的问题,我不知道为什么/我的错误在哪里。搜索了几个小时寻找解决方案,但没有任何可提及的结果。
当我使用这个时API演示代码一切正常,我可以听到所有已安装语言的声音。
但是当我检查时这个方法我收到 CHECK_VOICE_DATA_FAIL 作为自定义 TTS 引擎的返回代码(我需要所有必需的语言,标准谷歌是不够的)。
我在这里缺少什么?如何检查 TTS 引擎的可用性?
我知道这不一定是代码问题,但是对于其他程序来说这似乎有效。
我安装了一些其他应用程序SVox网站这些似乎适用于我的所有设备,而下面的代码失败了。
举个例子,对我说话经典版正在检查引擎的可用性并且它正在工作。
这里做了什么不同的事情?
这是我的确切代码(这是文章的副本):
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, 0x99);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 0x99) {
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
// success, create the TTS instance
mTts = new TextToSpeech(this, this);
} else {
Log.e("TTS","Missing Data:" + resultCode );
// missing data, install it
Intent installIntent = new Intent();
installIntent.setAction(
TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
}
}
}
很遗憾,initializing TextToSpeech
可靠是复杂的、异步的并且令人困惑的。
为什么你的代码检查0x99???
你实际上不需要使用ACTION_CHECK_TTS_DATA Intent
要检查语言可用性,请使用TextToSpeech.isLanguageAvailable
反而。
So 这是一个辅助类就可以了。该库中的代码将帮助您入门。它可以像扩展一样简单这个班.
或者您可以阅读有关详细信息这本书.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)