JellyBean 4.3中的GoogleTTSService名称是什么?

时间:2013-10-06 18:19:38

标签: android text-to-speech android-4.3-jelly-bean google-text-to-speech

在4.3之前的所有Android版本中,属于包android.tts.TtsService的Google文字转语音服务的名称为GoogleTTSService

因此,如果您检查运行Android 4.2或更低版本的设备中正在运行的服务列表,您会在其中找到com.google.android.tts.GoogleTTSService

但是在Android 4.3中,似乎已经发生了变化,在我运行的设备中列出的众多服务中,我再也找不到相应的服务名称了。

新名称是什么? 它是不同服务的一部分吗?

更新:该服务的软件包名称似乎已从2.x中的android.tts.TtsService重命名为4.3中的android.speech.tts.TextToSpeech。这是朝着正确方向迈出的一步,但谷歌引擎的实际名称仍然缺失。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以通过以下方式发现任何TTS引擎的包:

TextToSpeech tts = new TextToSpeech(context, onInitListener);

然后在onInit Listener中:

        @Override
        public void onInit(final int status) {

            switch (status) {

            case TextToSpeech.SUCCESS:

                try {

                    final String initEngine = tts.getDefaultEngine();

    // Output the engine to the log if it's != null

                } catch (final Exception e) {

                }

        break;
    }
}

根据我的经验,引擎有时会在onInit后很快调用时返回null或崩溃,因此建议使用try / catch块进行环绕。这只发生在一些IVONA和SVOX TTS引擎上,但当然用户可以将其中一个作为默认值。

答案 1 :(得分:1)

根据this,您可能正在使用ACTION_CHECK_TTS_DATA意图,但在Android 4.2中无法正确处理。

尝试消除使用ACTION_CHECK_TTS_DATA意图,而我们只依靠方法TextToSpeech.isLanguageAvailable()作为语音数据是否已安装的指示。

可能与您的问题相关的其他有用信息: