[prg] Вывод информации в android,используя объект TextToSpeech при включённом talkback и правильная установка голоса объекту TextToSpeech
Всех приветствую. Поскольку речь в моём письме будет идти только об
объекте TextToSpeech,поместил 2 вопроса в одно письмо. Подскажите
пожалуйста,как правильно выводить информацию,используя объект
textToSpeech с включённым talkback? Просто когда я пытаюсь выводить
какую-либо информацию,используя данный объект и talkback начинает
что-либо говорить (изменение contentDescription у textView,на котором
стоит accessibility фокус,изменение размера listview,информацию об
view,когда я устанавливаю на нём фокус,используя метод requestFocus у
этого view и т.д),tts сразу замолкает,т.е вместо нужной мне информации
выводится информация от talkback. Я пробовал работать с атрибутом у view
accessibilityLiveRegion (название атрибута написано неточно),присвоив
ему значение "none",но это мне не помогло в случае с изменения
contentDescription у textview. Также я пытался использовать метод
interrupt у объекта AccessibilityManager,который,согласно
документации,просит все службы доступности прерваться,но моё приложение
почему-то крахалось. Подскажите пожалуйста,как правильно выводить
информацию,используя объект TextToSpeech с включённым talkback,поскольку
этот способ вывода информации для незрячих мне нравится больше всего.
Также подскажите пожалуйста,как правильно устанавливать голоса у объекта
TextToSpeech. Просто когда я для эксперимента попытался установить голос
в слушателе tts,который мы обычно устанавливаем при инициализации
объекта TextToSpeech (в единственном методе этого слушателя),это не
работало,а когда я попытался установить голос после инициализации
объекта и установки ему соответствующих слушателей в методе activity
onCreate,то моё приложение крахнулось и,как я понял из лога,потому что
метод getVoices у этого объекта почему-то вернул вместо множества null.
Только когда я в моём методе,который проговаривает информацию,прежде чем
что-то сказать установил ему голос,моё приложение не крахнулся и это
заработало так,как надо. Устанавливал я голос ради эксперимента Так:
tts.setVoice((Voice)tts.getVoices().toArray()[1]);
Для инициализации объекта TextToSpeech я использовал конструктор с двумя
аргументами и ничего,кроме голоса,этому объекту не устанавливал.
Подскажите пожалуйста,в каком месте лучше всего установить голос у этого
объекта,чтобы это работало правильно. Заранее благодарю всех за помощь.