Мне нужно информировать пользователей, когда они выходят в оффлайн голосом. Я не могу заставить Речь Объявление сказать «Пересчет».
Я пытался создать SpeechAnnouncement и даже пытался создать ssml-теги, но безрезультатно.
navigationView.retrieveMapboxNavigation().addOffRouteListener(new OffRouteListener() {
boolean isOffRouteAnnounced = false;
@Override
public void userOffRoute(Location location) {
if (!isOffRouteAnnounced) {
if (PreferencesManager.getInstance().getLanguage().equals("hu")) {
saySomething("Újratervezés");
} else {
willVoice(SpeechAnnouncement.builder().announcement("Recalculating").ssmlAnnouncement("<speak><amazon:effect name=\"drc\"><prosody rate=\"1.08\">Recalculating</prosody></amazon:effect></speak>").build());
}
isOffRouteAnnounced = true;
} else {
//handle the multiple rerouting requests, say it only once in 5 seconds
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
isOffRouteAnnounced = false;
}
}, 5000);
}
}
});
@Override
public SpeechAnnouncement willVoice(SpeechAnnouncement speechAnnouncement) {
if (PreferencesManager.getInstance().getLanguage().equals("hu")) {
saySomething(TranslatorUtil.getTranslationWithSeparator(speechAnnouncement.announcement().toLowerCase()));
return null;
} else {
return speechAnnouncement;
}
}
Ожидаемый результат:
- Голос произносит слово «Пересчет», когда срабатывает обнаружение выключения.
Фактический результат:
- Обнаружение offRoute срабатывает, но willVoice ничего не говорит.