Как добавить «Пересчет» голоса в Mapbox Navigation, когда пользователь отключен? - PullRequest
0 голосов
/ 08 июля 2019

Мне нужно информировать пользователей, когда они выходят в оффлайн голосом. Я не могу заставить Речь Объявление сказать «Пересчет».

Я пытался создать 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 ничего не говорит.

...