Проблема преобразования текста в речь на уровне API 22

#java #android

#java #Android

Вопрос:

Я пытался преобразовать text to speech на уровне API 22. К сожалению, он не работает ниже уровня API 23.

 tts=new TextToSpeech(MainActivity.this, new TextToSpeech.OnInitListener() {
        @Override
        public void onInit(int status) {
            if (status!=TextToSpeech.ERROR)
            {
                tts.setLanguage(Locale.US);
            }
        }
    });


    btnSpeak.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String text=etxtText.getText().toString();

            tts.speak(text,TextToSpeech.QUEUE_FLUSH,null);
            //1.0f is default speech rate, increase to high and decrease to lower
            tts.setSpeechRate(1.0f);


        }
    });



}


@Override
protected void onPause() {

    if (tts!=null)
    {
        //to stop speech
        tts.stop();
        tts.shutdown();

    }
    super.onPause();
}
 

Он работает в верхней версии. Но не на уровне API 22. Есть ли возможный способ запустить его на уровне API 22.

Комментарии:

1. TTS — это очень, очень старый API, добавленный на уровне API 4. Возможно, вы пытаетесь использовать константу или метод, который был определен в api lvl 23 . Взгляните на официальную документацию developer.android.com/reference/android/speech/tts/TextToSpeech

2. @Leuofiridia Не могли бы вы проверить мой исходный код в git , не смотрите на API level причину, я изменил его после примерки API level 22 . Даже при нажатии на кнопку я не получаю никаких ошибок.

3. @Leuofiridia Я думаю, что у меня возникла проблема с установкой language . Потому что я установил для него тост. Но всплывающее сообщение не отображается. Итак, не могли бы вы сказать, что теперь делать?