首页 > 解决方案 > Android 9.0 中的 TextToSpeech 有错误或不支持?

问题描述

我有一个使用 TextToSpeech 来提供某些功能的项目。一切都很好,直到我尝试在 Android 9.0 上运行。它报告了一个错误:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.speech.tts.TextToSpeech.setLanguage(java.util.Locale)' on a null object reference

这些是我写的行:

private void initializeTextToSpeech() {
        mytts= new TextToSpeech(HomeActivity.this, new TextToSpeech.OnInitListener() {
            @Override
            public void onInit(int status) {
                if (status ==0){
                    Toast.makeText(HomeActivity.this,
                            "There is no TTS engine on your device", Toast.LENGTH_LONG).show();
                    finish();
                }else {
                    int result = mytts.setLanguage(Locale.US);

                    if (result == TextToSpeech.LANG_MISSING_DATA
                            || result == TextToSpeech.LANG_NOT_SUPPORTED) {
                        Log.e("TTS", "This Language is not supported");
                    } else {
                        Log.e("TTS", "success !");
                    }
                }
            }
        });
    }

在我将条件更改为status == 0之后status! = TextToSpeech.SUCCESS,它宣布:“您的设备上没有 TTS 引擎”。好像不支持 9.0 版 TTS?

标签: android

解决方案


推荐阅读