Следуя подсказке в этом ответе , я позвонил setEngineByPackageName прямо в onActivityResult()
, когда requestCode == REQ_TTS_STATUS_CHECK && TextToSpeech.Engine.CHECK_VOICE_DATA_PASS
:
tts = new TextToSpeech(this, this);
tts.setEngineByPackageName("com.ivona.tts.voicebeta.eng.usa.kendra");
Но независимо отНезависимо от того, проверяю я или снимаю флажок Always use my settings
в настройках преобразования текста в речь, я всегда получаю pico движок по умолчанию!
Да, я намеренно устанавливаю движок pico по умолчанию,так что я могу проверить переопределение с помощью вышеупомянутого совета .Но этот метод API, похоже, не работает вообще, или ... я что-то упустил?
(я знаю, что setEngineByPackageName устарела, так как он не сообщает вызывающей стороне, когдаЯдро TTS было инициализировано, но мне нужно поддерживать API 8, поэтому этот метод - мой единственный вариант на данный момент)