У меня проблема с моим TextToSpeech. Фактически, когда я вызываю свою функцию «Сын» (см. Ниже) (когда я нажимаю, например), я должен ждать 4 секунды, чтобы первый щелчок услышал голос, но после первого щелчка мгновенно услышать голос.Мне нужно подождать несколько секунд, прежде чем TextToSpeech говорит
Но иногда он отлично работает с первого щелчка. В Android Monitor, если он работает или нет, я могу видеть:
I/TextToSpeech: Sucessfully bound to com.google.android.tts
I/TextToSpeech: Connected to ComponentInfo{com.google.android.tts/com.google.android.tts.service.GoogleTTSService}
I/TextToSpeech: Set up connection to ComponentInfo{com.google.android.tts/com.google.android.tts.service.GoogleTTSService}
поэтому я предполагаю, что это зависит от Android, но я надеюсь, что смогу сделать что-то исправить, что ... Есть ли у вас какие-либо идеи? Если вам нужна дополнительная информация, не стесняйтесь спрашивать!
Спасибо, ребята!
Мой код:
public void Son(final String texte_son){
t1=new TextToSpeech(this, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if(status != TextToSpeech.ERROR) {
t1.setLanguage(Locale.FRENCH);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
ttsGreater21(texte_son);
} else {
ttsUnder20(texte_son);
}
}
}
});
}
@SuppressWarnings("deprecation")
private void ttsUnder20(String text) {
HashMap<String, String> map = new HashMap<>();
map.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "MessageId");
t1.speak(text, TextToSpeech.QUEUE_FLUSH, map);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void ttsGreater21(String text) {
String utteranceId=this.hashCode() + "";
t1.speak(text, TextToSpeech.QUEUE_FLUSH, null, utteranceId);
}
Inded, это было бесполезно для создания TextToSpeech каждый раз. Спасибо ! Тем не менее у меня все еще есть проблема с ожиданием первого выступления. У вас есть идея, как исправить это? – ValentinLoricourt
Я вижу разницу с этим кодом. Если я подожду достаточно долго (около 6 секунд, так что это долго), прежде чем сделать первый клик, тогда голос сразу же выйдет. С моим предыдущим кодом ожидание бесполезно. Я не знаю, поможет ли это ... – ValentinLoricourt
Для запуска службы требуется некоторое время, чтобы кнопка неактивна, а tts не инициализировалась и отображала прогресс для пользователя, что-то в этом роде. –